将数组与Numpy中的行匹配
我有一个形状为(50,3)的数组“A”和另一个形状为(1,3)的数组“B” 实际上,B是a中的一行,所以我需要找到它的行位置 我使用了将数组与Numpy中的行匹配,numpy,pattern-matching,Numpy,Pattern Matching,我有一个形状为(50,3)的数组“A”和另一个形状为(1,3)的数组“B” 实际上,B是a中的一行,所以我需要找到它的行位置 我使用了np.where(A==B),但它给出了元素搜索的位置。例如,下面是我得到的结果: >>> np.where(A == B) (array([ 3, 3, 3, 30, 37, 44]), array([0, 1, 2, 1, 2, 0])) 实际上,B是A中的第四行(在我的例子中)。但上面的结果给出了(3,0)(3,1)(3,2)和其他,
np.where(A==B)
,但它给出了元素搜索的位置。例如,下面是我得到的结果:
>>> np.where(A == B)
(array([ 3, 3, 3, 30, 37, 44]), array([0, 1, 2, 1, 2, 0]))
实际上,B是A中的第四行(在我的例子中)。但上面的结果给出了(3,0)(3,1)(3,2)和其他,它们是按元素匹配的
与此相反,我需要一个答案“3”,这是当B作为一个整体搜索A时得到的答案,它还删除了其他类似(30,1)(37,2)。。。这是部分匹配
在努比我怎么做
谢谢。您可以指定轴:
numpy.where((A == B).all(axis=1))
请注意,它是numpy.all()的一个参数,而不是numpy.where()。