numpy 在NP数组的内轴上找到模式并进行修改最有效的方法是什么?

ekqde3dh  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(133)

我有一个3D数组[]。我想查看最后一个轴或最内侧轴上的所有数组。如果它们与此模式[x,x]匹配,我想将它们更改为[0,0,0,0]。我知道我想做什么。我只是不知道做这件事最有效的方法。
当前代码:

most_common = np.array(stats.mode(img_arr)[0][0][0])
        for i, row in enumerate(img_arr):
            for j, color in enumerate(row):
                if np.array_equal(color, most_common):
                    img_arr[i][j] = np.array([0, 0, 0, 0])
yeotifhr

yeotifhr1#

一种方法是从最后一个轴中减去您的图案,然后检查Norm=0:

import numpy as np
a = np.arange(3*3*3).reshape(3,3,3)
b = np.array([0,1,2])
c = np.array([99,98,97])
indices = np.sum(np.abs(a-b), axis=2) == 0
a[indices] = c
print(a)

相关问题