【问题标题】:Is there a function to transform all element of ndarray?是否有转换ndarray所有元素的功能?
【发布时间】:2019-11-30 07:25:26
【问题描述】:

我必须转换 ndarray(灰度图像)的所有元素。特别是如果我的值为 0,则所需的值为 0,并且值 > 0 变为 1。 有没有 numpy 的功能可以做到这一点? 我可以做到这一点,但我认为这不是最好的解决方案。

【问题讨论】:

  • 这样吗? myarr[myarr > 0] = 1
  • 喜欢这个 myarr[myarr>0] = 1

标签: python numpy


【解决方案1】:

你应该在 numpy 中查找花式索引和/或布尔索引。 实际上,您可以做的就是这样

array[array>0] = 1

这会将所有索引 > 0 设置为 1

【讨论】:

    【解决方案2】:

    如果您不想“就地”工作,您可以这样做:

    def to_bw(img, dtype=np.uint8):
        return (img > 0).astype(dtype)
    

    例如您将其用作:

    import numpy as np
    
    to_bw(np.array([0,1,2]))
    

    它将评估为:

    array([0, 1, 1])
    

    注意这听起来很像:Convert RGB to black OR white

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 2011-08-25
      • 2020-10-06
      • 2017-04-30
      相关资源
      最近更新 更多