2016-07-20 89 views
4

的NumPy数组行我有一个2D NumPy数组a和列表/集/ 1D NumPy数组b。我想找到的a其中包含任何b,即那些行,查找包含列表

import numpy as np 

a = np.array([ 
    [1, 2, 3], 
    [4, 5, 3], 
    [0, 1, 0] 
    ]) 

b = np.array([1, 2]) 

# result: [True, False, True] 

任何提示?

回答

5

您可以使用np.in1d查找a中每个元素的任何元素的匹配项,它们是b。现在,np.in1d会压扁数组,所以我们需要在之后重新塑形。最后,由于我们想沿a的每一行找到ANY匹配,请沿每行使用np.any。因此,我们会有这样的实现 -

np.in1d(a,b).reshape(a.shape).any(axis=1)