说我有以下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
谢谢
答案 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. ])