【问题标题】:Numpy Arrays - Replacing ElementsNumpy 数组 - 替换元素
【发布时间】:2019-02-07 07:27:52
【问题描述】:

我是 numpy 新手,我想替换 3D numpy 数组中的特定元素。我的 3D numpy 数组代表一个图像。数组的形状是: (1080, 1920, 3)。数字 3 代表图像中每个像素的 RGB。

我只想知道如何将所有等于 [0,0,0] 的元素更改为 [255,255,255] 这意味着我希望图像中的所有黑色像素都是白色的。我该怎么做? 谢谢!

【问题讨论】:

    标签: python numpy numpy-ndarray


    【解决方案1】:

    假设您已将数组存储在data;这应该工作:

    data[(data == 0).all(axis=2)] = [255, 255, 255]
    

    这是由于 numpy 的广播规则将每个值与 0 进行比较,从而产生一个布尔数组,其中 True 值相等,False 在别处比较。

    下一步是仅采用所有单个值都比较相等的子数组,.all(axis=2) - 最后一个轴,这是您想要的。

    然后,使用生成的布尔数组,您可以索引回data,这将只为您提供等于[0, 0, 0] 的子数组,并将它们设置为[255, 255, 255]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-02
      • 2016-02-02
      • 2018-03-30
      • 2021-05-22
      • 2021-05-15
      • 1970-01-01
      • 2017-12-05
      • 2021-07-04
      相关资源
      最近更新 更多