如何找到两个不同大小的数组的相同行?

时间:2020-08-12 19:26:10

标签: python-3.x numpy

我有两个大小不同的数组

a = np.array([[5, 0], [2, 4], [0, 1], [3, 4], [1, 5], [5, 6], [7, 9]])
b = np.array([[0, 3], [5, 6], [2, 5], [2, 4]])

我需要

c = np.array([False, True, False, False, False, True, False])

即数组“ b”在数组“ a”中具有行[5,6]和[2,4]。目前,我是通过

logical = np.zeros(a.shape[0]).astype(bool)
for i in range(b.shape[0]):
    logical += np.all(a == b[i], axis=1)

是否有用于执行此操作的numpy代码?

1 个答案:

答案 0 :(得分:2)

让我们尝试广播:

(a[None,:] == b[:,None]).all(-1).any(0)

输出:

array([False,  True, False, False, False,  True, False])
相关问题