where()函数接收bool数组,返回满足条件的索引,不过要特别注意返回值的形式
看代码:
import numpy as np
b=np.array([[[5,5],[2,2],[3,3],[5,5],[1,1]],[[5,5],[2,2],[3,3],[5,5],[1,1]]])
print(b.shape)
all =np.where(b > 3)
dim1,dim2,dim3=np.where(b > 3)
print(type(all))
print(all)
print(type(dim1))
print(dim1)
print(dim2)
print(dim3)
输出:
(2, 5, 2)
<class ‘tuple’>
(array([0, 0, 0, 0, 1, 1, 1, 1], dtype=int64), array([0, 0, 3, 3, 0, 0, 3, 3], dtype=int64), array([0, 1, 0, 1, 0, 1, 0, 1], dtype=int64))
<class ‘numpy.ndarray’>
[0 0 0 0 1 1 1 1]
[0 0 3 3 0 0 3 3]
[0 1 0 1 0 1 0 1]
dim3为最外层维度,要特别注意