Python 查找包含列表中任意一行的NumPy数组行

Python 查找包含列表中任意一行的NumPy数组行,python,arrays,numpy,Python,Arrays,Numpy,我有一个2D NumPy数组a和一个list/set/1D NumPy数组b。我想查找包含b中任何一行的a,即 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] 有任何提示吗?您可以使用它在a中的每个元素中查找b中任何元素的匹配项。现在,np.in1d将使数组变平,因此

我有一个2D NumPy数组
a
和一个list/set/1D NumPy数组
b
。我想查找包含
b
中任何一行的
a
,即

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]
有任何提示吗?

您可以使用它在
a
中的每个元素中查找
b
中任何元素的匹配项。现在,
np.in1d
将使数组变平,因此我们需要在以后进行重塑。最后,由于我们希望沿着
a
中的每一行查找
ANY
匹配项,因此沿每一行使用
np.ANY
。因此,我们将有一个这样的实现-

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