检查不同的numpy数组中的相同行
发布于 2021-01-29 19:14:54
我如何获得两个数组之间的按行比较,从而得到按行的真/假数组?
给定数据:
a = np.array([[1,0],[2,0],[3,1],[4,2]])
b = np.array([[1,0],[2,0],[4,2]])
结果步骤1:
c = np.array([True, True,False,True])
最终结果:
a = a[c]
那么我如何获得阵列呢c
?
PS:在此示例中,数组a
和b
进行了排序,如果在您的解决方案中数组进行了排序很重要,也请提供信息
关注者
0
被浏览
42
1 个回答
-
这是向量化的解决方案:
res = (a[:, None] == b).all(-1).any(-1) print(res) array([ True, True, False, True])
请注意,
a[:, None] == b
将的每行a
与按b
元素进行比较。然后,我们使用all
+any
推断True
每个子数组是否有所有行:print(a[:, None] == b) [[[ True True] [False True] [False False]] [[False True] [ True True] [False False]] [[False False] [False False] [False False]] [[False False] [False False] [ True True]]]