将数组匹配到Numpy中的一行

Abi*_*n K 3 numpy pattern-matching

我有一个形状为'A'的形状(50,3)和另一个形状为'B'的形状(1,3).

实际上这个B是A中的一行.所以我需要找到它的行位置.

我用过np.where(A==B),但它给出了元素搜索的位置.例如,下面是我得到的结果:

>>> np.where(A == B)
(array([ 3,  3,  3, 30, 37, 44]), array([0, 1, 2, 1, 2, 0]))
Run Code Online (Sandbox Code Playgroud)

实际上B是A中的第4行(在我的例子中).但是上面的结果给出了(3,0)(3,1)(3,2)和其他,它们是元素相匹配的.

而不是这个,我需要一个答案'3',这是当B在A中作为一个整体搜索时获得的答案,它也删除了其他像(30,1)(37,2)......这些是部分匹配的答案.

我怎么能在Numpy做到这一点?

谢谢.

Ben*_*min 11

您可以指定轴:

numpy.where((A == B).all(axis=1))
Run Code Online (Sandbox Code Playgroud)