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

时间:2018-10-22 16:30:48

标签: python arrays numpy

说我有以下numpy数组。

arr = np.array( [ 1.0, 1.1, 1.44, 1.8, 1.0, 1.67, 1.23, 1.0] )

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

arr[arr==1.0] = 0.0

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

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

arr[arr>1.0 and arr<1.5] = 1.0

谢谢

2 个答案:

答案 0 :(得分:1)

您可以这样做

arr = np.array( [ 1.0, 1.1, 1.44, 1.8, 1.0, 1.67, 1.23, 1.0] )
arr[(1<arr) & (arr<1.5)] = 1.0

您需要使用按位&将数组连接到一个数组掩码中。

答案 1 :(得分:1)

您只需要使用&将条件合并在一起并将条件放在( )

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

# array([1.  , 1.  , 1.  , 1.8 , 1.  , 1.67, 1.  , 1.  ])