假设我有一个shape的numpy ndarray(172,40,20)和一个shape的1-0掩码(172,40),我想做类似于bitwise_and的操作:以保持掩码值为1的那些值,而在掩码值为0的情况下将其它值设置为0。
有没有一种方法可以不用循环?例如
a3D = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(a3D.shape)
mask = np.array([[1, 0], [0, 1]])
print(mask.shape)
# (2, 2, 2)
# (2, 2)
# my func
result = bitwise_and(a3D, mask)
# result = np.array([[[1, 2], [0, 0]], [[0, 0], [7, 8]]])
2条答案
按热度按时间kknvjkwl1#
您可以使用
np.where()
:6yjfywim2#
只需使用掩码作为布尔索引来索引数组:
产出