Nic*_*mer 4 python arrays numpy
我有一个2D NumPy数组a和一个list/set/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]
Run Code Online (Sandbox Code Playgroud)
任何提示?
您可以使用它np.in1d来查找b每个元素中的任何元素的匹配项a.现在,np.in1d会使阵列变平,所以我们需要重新塑造阵列.最后,因为我们想要ANY沿着每一行找到匹配,所以沿着每一行a使用np.any.因此,我们会有这样的实现 -
np.in1d(a,b).reshape(a.shape).any(axis=1)
Run Code Online (Sandbox Code Playgroud)