2015-10-15 107 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 
相关问题