Numpy将一个数组的所有非零元素组合到另一个数组中

时间:2015-08-06 18:00:04

标签: python arrays numpy matrix

在Numpy中我有两个代表图像的三维数组。我试图创建第二个图像的叠加到第一个,所以我想用第二个数组中的相应元素替换第一个数组中的所有元素,但仅当它们不为零时。有没有简单的方法呢?

3 个答案:

答案 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]