【问题标题】:Taking a list of 2-d arrays and getting the non-zero values as ones in a single array with Numpy使用 Numpy 获取二维数组列表并将非零值作为单个数组中的值
【发布时间】:2020-12-19 19:19:25
【问题描述】:

我有一个二维 numpy 数组的列表,我希望创建一个数组,其中包含每个数组的非零值(或方式)设置为 1。例如

arr1 = np.array([[1,0],[0,0]])
arr2 = np.array([[0,10],[0,0]])
arr3 = np.array([[0,0],[0,8]])
arrs = [arr1, arr2, arr3]

所以我的操作会产生

op(arrs) = [[1, 1], [0, 1]]]

在 numpy 中执行此操作的有效方法是什么(对于大约 8 个 600 x 600 的图像数组)?

【问题讨论】:

    标签: numpy


    【解决方案1】:

    我花了一段时间才明白。尝试将所有保持其尺寸的数组求和,然后用1 替换非零值,如下所示-

    def op(arrs):
        return np.where(np.add.reduce(arrs) != 0, 1, 0) 
    

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2016-10-27
      相关资源
      最近更新 更多