Python 查找包含列表中任意一行的NumPy数组行
我有一个2D 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将使数组变平,因此
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)