Say I have following numpy array.
arr = np.array( [ 1.0, 1.1, 1.44, 1.8, 1.0, 1.67, 1.23, 1.0] )
I could replace all elements that are equal to 1.0 with 0.0, simply using following line.
arr[arr==1.0] = 0.0
How could I replace all elements between, say 1.0 - 1.5 with 1.0 without running through a for loop.
Basically what I ask is how to do the following
arr[arr>1.0 and arr<1.5] = 1.0
Thanks
You just need to club the conditions together using &
and enclosing the conditions in ( )
arr[(arr>1.0) & (arr<1.5)] = 1.0
# array([1. , 1. , 1. , 1.8 , 1. , 1.67, 1. , 1. ])
You can do it like this
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
You need to use the bit-wise &
to join the arrays into one array mask.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With