4

我有一个形状为(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 中的第 4 行(在我的情况下)。但是上面的结果给出了 (3,0)(3,1)(3,2) 和其他的,它们是逐元素匹配的。

取而代之的是,我需要一个答案“3”,这是当 B 在 A 中整体搜索时获得的答案,它还删除了其他部分匹配,例如 (30,1)(37,2)...。

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

谢谢你。

4

1 回答 1

12

您可以指定轴:

numpy.where((A == B).all(axis=1))
于 2012-06-20T13:29:42.350 回答