0

I have an numpy array with 0-10 elements.

a = np.arange(0,11)
np.random.shuffle(a)
a
array([ 1,  7,  8,  0,  2,  3,  4, 10,  9,  5,  6])

I wanted to convert elements to NaN if they are between 4 and 8. As a first step I tried getting the array with np.where like below:

np.where([a > 4] & [a < 8])

but got error. any help please?

Aneesh Damodaran
  • 566
  • 4
  • 10

1 Answers1

1

You need:

import numpy as np 

a = np.arange(0,11)
np.random.shuffle(a)

print(a)
# [ 7  4  2  3  6 10  1  9  5  0  8]

a = np.where((a > 4) & (a < 8), np.nan, a)

print(a)
# [nan  4.  2.  3. nan 10.  1.  9. nan  0.  8.]

If you want to know how np.where()works, refer numpy.where() detailed, step-by-step explanation / examples

Sociopath
  • 13,068
  • 19
  • 47
  • 75