我有一个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实现这一目标?
答案 0 :(得分:2)
将numpy.all
与axis
一起使用:
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]