2016-07-20 120 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)