将数组匹配到Numpy中的一行

时间:2012-06-20 13:23:53

标签: 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]))

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:11)

您可以指定轴:

numpy.where((A == B).all(axis=1))