2012-05-22 104 views
1

我有一個兩維np.array多維numpy的陣列__eq__

x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]]) 

現在我想的索引,其中x是等於[4,5]-> [1, 4])。以不同的方式==工作操作:

x == [4,5] 
array([[False, False], 
     [ True, True], 
     [ True, False], 
     [False, False], 
     [ True, True]], dtype=bool) 

,但我想是這樣[False, True, False, False, True]and可以嗎?

通常這個數組非常大,我必須做很多次,所以我需要一個非常快速的方法。

回答

4

這應該是numpy的路:

x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]]) 
(x == [4,5]).all(1) 

#out: array([False, True, False, False, True], dtype=bool) 
0

與numpy的沒有現成的經驗,但這個工程的一個標準數組:

x = [[1, 2], [4, 5], [4, 6], [5, 4], [4, 5]] 

indices = [i for i, v in enumerate(x) if v == [4, 5]] 
# gives [1, 4] 

matches = [v == [4, 5] for v in x] 
# gives [False, True, False, False, True] 
+0

對不起,我忘了說我想要一個numpy的解決方案 –