изменить каждое значение в массиве NumPy с условием - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть двумерный массив, из которого я получил изображение, на данный момент он содержит 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 голосов
/ 12 февраля 2019

Таким образом, вы можете изменить матрицу с условиями без циклов

img[img==255]=1
0 голосов
/ 12 февраля 2019

Использование 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]] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...