使用条件更改numpy数组中的每个值

时间:2019-02-12 07:50:52

标签: python numpy

我有一个2d数组和图像,现在它有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函数或其他方法可以更简单地完成此操作。但是我到处都找不到。

如果您知道如何轻松进行此操作..请帮助我

2 个答案:

答案 0 :(得分:6)

这样,您可以修改条件而无循环

img[img==255]=1

答案 1 :(得分:5)

使用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]]