2016-07-27 99 views
0

列說,我有一個數組如何找到一個ndarray

x = array([[ 0, 1, 2, 5], 
     [ 3, 4, 5, 5], 
     [ 6, 7, 8, 5], 
     [ 9, 10, 11, 5]]) 

我需要找到[3, 4, 5, 5]位置/索引。在這種情況下,它應該返回1

回答

0

創建一個數組y,該數組的行數等於您正在查找的行數。然後,做一個元素比較x == y,並找到你得到的所有行True

import numpy as np 

x1 = np.array([[0, 1, 2, 5], [3, 4, 5, 5], 
       [6, 7, 8, 5], [9, 10, 11, 5]]) 
y1 = np.array([[3, 4, 5, 5]] * 4) 
print(np.where(np.all(x1 == y1, axis=1))[0]) # => [1] 

該方法返回所需行出現的索引數組。

y2 = np.array([[1, 1, 1, 1]] * 4) 
print(np.where(np.all(x1 == y2, axis=1))[0]) # => [] 

x2 = np.array([[3, 4, 5, 5], [3, 4, 5, 5], 
       [6, 7, 8, 5], [9, 10, 11, 5]]) 
print(np.where(np.all(x2 == y1, axis=1))[0]) # => [0 1]