查找满足条件的numpy数组元素

时间:2018-08-10 05:16:34

标签: python numpy

我有一个numpy数组,我想找到满足我条件的元素 代码如下:

import numpy as np
a = np.array([[1, 2], [1, 3], [1, 2]])
b = np.array([1, 2])
c = (a == b) 

结果是

[[ True  True]
[ True False]
[ True  True]]

但是我想要的是[True,False,True]或索引[0,2]。

尽管我可以通过列表理解来实现,例如

c = [all(b==x) for x in a]

但是我希望将来在3d矩阵中找到该元素,例如

a = np.array([[[1, 2], [1, 3], [1, 2]], 
         [[7, 2], [1, 2], [4, 2]]])

我想要类似[[0,0],[0,2],[1,1]]的索引

我应该如何通过numpy实现这一目标?

1 个答案:

答案 0 :(得分:2)

numpy.allaxis一起使用:

代码:

np.all(a == b, axis=1)

测试代码:

a = np.array([[1, 2], [1, 3], [1, 2]])
b = np.array([1, 2])
c = np.all(a == b, axis=1)
print(c)

结果:

[ True False  True]