【问题标题】:change every value in a numpy array with a condition使用条件更改 numpy 数组中的每个值
【发布时间】:2019-07-05 19:26:25
【问题描述】:

我有一个二维数组和图像,现在它有 0 和 255,我想将所有 255 更改为 1,这对于 for 循环来说是一项非常简单的任务。

for i in range(lenX):
    for j in range(lenY):
        if img[i,j]==255:
            img[i,j] = 1

这里 img 是我的数组。我很确定有一种更简单的方法可以使用某种 numpy 函数或其他东西来做到这一点。但我找遍了所有我找不到的地方。

如果你知道如何轻松做到这一点..请帮助我

【问题讨论】:

标签: python numpy


【解决方案1】:

使用np.where

import numpy as np 

a = np.array([[1,9,1],[12,15,255],[255,1,245],[23,255,255]]) 
a = np.where(a==255, 1, a)
print(a)

输出:

[[  1   9   1]                                                                                                                                                    
 [ 12  15   1]                                                                                                                                                    
 [  1   1 245]                                                                                                                                                    
 [ 23   1   1]] 

【讨论】:

    【解决方案2】:

    这样你就可以在没有循环的情况下修改矩阵

    img[img==255]=1
    

    【讨论】:

      猜你喜欢
      • 2020-01-29
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多