在 python 中更改高于阈值的矩阵值

Changing the values of a matrix above a threshold in python

我有一个矩阵:

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 替换所有值 0.55 < x < 0.95

PS :我的问题类似于。但答案对我来说不起作用。

您可以使用 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.  ]]])