在Numpy中我有两个代表图像的三维数组。我试图创建第二个图像的叠加到第一个,所以我想用第二个数组中的相应元素替换第一个数组中的所有元素,但仅当它们不为零时。有没有简单的方法呢?
答案 0 :(得分:5)
这似乎是np.where
...
new_arr = np.where(second == 0, first, second)
我已经完成了替换的不合适(创建一个新的阵列而不是修改原始阵列),但这通常都可以......
答案 1 :(得分:2)
您可以这样做:
zeros_idx = array2 != 0
array1[zeros_idx] = array2[zeros_idx]
答案 2 :(得分:0)
使用numpy.nonzero
修改原文。与@Holt提供的答案类似。
m = numpy.nonzero(array2)
array1[m] = array2[m]