Изменение значений матрицы выше порога в питоне - PullRequest
0 голосов
/ 20 сентября 2019

Так что этот вопрос похож на этот .

Но в моем случае ответ не очень хороший.Для простоты я беру значения вопроса, который там задавался.

matrix = np.array([[[0,0.5,0.6],[0.9,1.2,0]],[[0,0.5,0.6],[0.9,1.2,0]]])

Я хочу заменить все значения 0,55

np.any(0.55<matrix<0.95)
matrix[mask]=0.55

Но он делает что-то еще.

Я хотел бы иметь метод, который можно применить к матрице высокой размерности и многослучайные значения

1 Ответ

2 голосов
/ 20 сентября 2019

Вы можете использовать np.where:

matrix = np.array([[[0,0.5,0.6],[0.9,1.2,0]],[[0,0.5,0.6],[0.9,1.2,0]]])
matrix[np.where((matrix > 0.55) & (matrix < 0.95))] = 0.55
# Or
# matrix[(matrix > 0.55) & (matrix < 0.95)] = 0.55

Выход:

>>> matrix
array([[[0.  , 0.5 , 0.55],
        [0.55, 1.2 , 0.  ]],

       [[0.  , 0.5 , 0.55],
        [0.55, 1.2 , 0.  ]]])
...