2015-10-15 110 views
1

我想創建一個n乘2的NumPy數組,然後測試它是否包含特定的1乘2數組(即它是否包含特定行)。測試NumPy數組是否包含特定的行

這裏是我的代碼:

x = np.array([0, 1]) 
y = np.array([2, 3]) 
z = np.vstack((x, y)) 
if x in z: 
    print "Yes" 

但是,這給我的錯誤:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

請能有人給我講解一下?謝謝!

回答

0

您可能會使用舊版本的numpy,因爲在1.10這是行不通的;

>>> x = np.array([0, 1]) 
>>> y = np.array([2, 3]) 
>>> z = np.vstack((x, y)) 
>>> x in z 
True 
>>> np.__version__ 
'1.10.1' 

這就是說,它不是你想要的東西:

>>> z 
array([[0, 0], 
     [0, 0]]) 
>>> x 
array([0, 1]) 
>>> x in z 
True 

commented out herex in z等同的(x == z).any(),不用客氣,你要行搜索。


要實現你需要什麼,你可以這樣做:

>>> (z == x).all(axis=1).any() 
True 
相關問題