在numpy数组中找到一个数组?

时间:2014-01-28 02:00:24

标签: python arrays numpy comparison indices

我在N维中有大量有序对。然后我有一个N维的测试数组,我想找到大数组中其位置的所有索引。一个简单的示例如下所示:

>>> import numpy as np
>>> x = np.array(  ((1,2),(3,4),(5,6)) )
>>> y = np.array( (1,2) )
>>> x == y
array([[ True,  True],
   [False, False],
   [False, False]], dtype=bool)

然而,我想要的是:

array([True,
   False,
   False], dtype=bool)

这可能吗?我想避免遍历整个大型数组并测试所有单个对象以查找索引。大型阵列中有多个位置,每个测试阵列出现,我需要所有索引。

我错过了一些简单的东西吗?

1 个答案:

答案 0 :(得分:4)

(x == y).all(axis=1)

应该这样做。它测试x == y每行中的所有条目是否为真,并返回一维结果数组。它大致相当于

numpy.array([all(vector) for vector in x == y])