【问题标题】:Numpy combine all nonzero elements of one array in to anotherNumpy 将一个数组的所有非零元素组合到另一个数组中
【发布时间】:2015-08-06 18:00:04
【问题描述】:

在 Numpy 中,我有两个表示图像的三维数组。我正在尝试在第一个图像上创建第二个图像的叠加层,因此我想用第二个数组中的相应元素替换第一个数组中的所有元素,但前提是它们不为零。有什么简单的方法吗?

【问题讨论】:

    标签: python arrays numpy matrix


    【解决方案1】:

    这似乎是 np.where 的完美用例 ...

    new_arr = np.where(second == 0, first, second)
    

    我已经完成了异地替换(创建一个新数组而不是修改原始数组),但这通常没关系...

    【讨论】:

    • 这是我最终使用的,效果很好,谢谢!
    【解决方案2】:

    你可以这样做:

    zeros_idx = array2 != 0
    array1[zeros_idx] = array2[zeros_idx]
    

    【讨论】:

      【解决方案3】:

      使用numpy.nonzero 修改原始文件。类似于@Holt 提供的答案。

      m = numpy.nonzero(array2)
      array1[m] = array2[m]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-11
        • 2018-12-17
        • 1970-01-01
        • 2021-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多