2014-01-28 61 views
2

我在N維中有大量的有序對。然後我在N維中有一個單一的測試數組,我想在大數組中找到它所有位置的索引。一個簡單的例子如下所示:在numpy數組中查找數組?

>>> 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) 

這可能嗎?我想避免遍歷整個大數組並測試所有單個對象以查找索引。大陣列中有多個位置出現每個測試數組,並且我需要所有的索引。

我是否缺少一些簡單的東西?

回答

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

這應該這樣做。它測試x == y每行中的所有條目是否爲真,並返回一維結果數組。這大致相當於

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