【问题标题】:How to find identical rows of two arrays with different size? [duplicate]如何找到两个不同大小的数组的相同行? [复制]
【发布时间】:2020-12-02 14:42:31
【问题描述】:

我有两个大小不同的数组

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 代码可以做到这一点?

【问题讨论】:

    标签: python-3.x numpy


    【解决方案1】:

    让我们尝试广播:

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

    输出:

    array([False,  True, False, False, False,  True, False])
    

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2021-10-23
      • 1970-01-01
      • 2016-02-24
      相关资源
      最近更新 更多