然后在给定范围内替换numpy数组元素

Ach*_*age 3 python arrays numpy

假设我有以下 numpy 数组。

arr = np.array( [ 1.0, 1.1, 1.44, 1.8, 1.0, 1.67, 1.23, 1.0] )
Run Code Online (Sandbox Code Playgroud)

我可以用 0.0 替换所有等于 1.0 的元素,只需使用以下行。

arr[arr==1.0] = 0.0
Run Code Online (Sandbox Code Playgroud)

我怎么能在不运行 for 循环的情况下用 1.0 替换 1.0 - 1.5 之间的所有元素。

基本上我要问的是如何执行以下操作

arr[arr>1.0 and arr<1.5] = 1.0
Run Code Online (Sandbox Code Playgroud)

谢谢

She*_*ore 6

您只需要使用&并将条件包含在( )

arr[(arr>1.0) & (arr<1.5)] = 1.0

# array([1.  , 1.  , 1.  , 1.8 , 1.  , 1.67, 1.  , 1.  ])   
Run Code Online (Sandbox Code Playgroud)