np.all() 和 np.any() 可以用于再ndarray中实现逻辑上“与”和“或”操作,这在制作ndarray的indices_mask时也很有用处
PS:np.all(ndarray)/any(ndarray) 和 ndarray.all()/any() 是等价的方法
官方接口和说明:
def all(a, axis=None, out=None, keepdims=np._NoValue):
Test whether all array elements along a given axis evaluate to True.
def any(a, axis=None, out=None, keepdims=np._NoValue):
Test whether any array element along a given axis evaluates to True.
Returns single boolean unlessaxis
is notNone
使用范例:
a = np.array([
[[1,1,1,1],
[2,2,2,2],
[3,3,3,3]],
[[1,1,4,4],
[5,5,5,5],
[6,6,6,6]]
])
print(a.shape)
print( a==1, '\n' )
[Out]:
(2, 3, 4)
[[[ True True True True]
[False False False False]
[False False False False]]
[[ True True False False]
[False False False False]
[False False False False]]]
all():
print( (a==1).all(axis=0), '\n' ) # shape:(3,4)
print( (a==1).all(axis=1), '\n' ) # shape:(2,4)
print( (a==1).all(axis=2), '\n' ) # shape:(2,3)
[Out]:
[[ True True False False]
[False False False False]
[False False False False]]
[[False False False False]
[False False False False]]
[[ True False False]
[False False False]]
any()同理:
print( (a==1).any(axis=0), '\n' )
print( (a==1).any(axis=1), '\n' )
print( (a==1).any(axis=2), '\n' )
[Out]:
[[ True True True True]
[False False False False]
[False False False False]]
[[ True True True True]
[ True True False False]]
[[ True False False]
[ True False False]]