比较 3D 数组并删除不同的元素

时间:2021-02-02 09:18:40

标签: python arrays numpy numpy-ndarray

我有两个 3D numpy 数组。我想将 b 与 a 进行比较,然后仅保留 b 中存在于 a 中的元素 for axis=0。

a=
np.asarray([[[-0.5, -0.5,  0.5],
        [-0.5,  0.5,  0.5],
        [-0.5, -0.5, -0.5]]])
b=
np.asarray([[[-0.5, -0.5,  0.5],
        [-0.5,  0.5,  0.5],
        [-0.5, -0.5, -0.5]],

       [[ 0.5, -0.5, -0.5],
        [-0.5, -0.5,  0.5],
        [-0.5, -0.5, -0.5]]])

我试过np.where(np.any((b==a), axis=0, keepdims=True),a, b)

我得到的输出是:

array([[[-0.5, -0.5,  0.5],
    [-0.5,  0.5,  0.5],
    [-0.5, -0.5, -0.5]],

   [[-0.5, -0.5,  0.5],
    [-0.5,  0.5,  0.5],
    [-0.5, -0.5, -0.5]]])

如何将输出作为仅数组 a 元素? 预期输出:

 op_array = array([[[-0.5, -0.5,  0.5],
                    [-0.5,  0.5,  0.5],
                    [-0.5, -0.5, -0.5]]])

使用 numpy-compare-two-3d-array-and-find-identical-arrays 作为参考。

0 个答案:

没有答案