Given numpy array, the task is to find elements within some specific range. Let’s discuss some ways to do the task.
Method #1: Using np.where()
# python code to demonstrate # finding elements in range # in numpy array import numpy as np ini_array = np.array([ 1 , 2 , 3 , 45 , 4 , 7 , 810 , 9 , 6 ]) # printing initial array print ( "initial_array : " , str (ini_array)); # find elements in range 6 to 10 result = np.where(np.logical_and(ini_array> = 6 , ini_array< = 10 )) # printing result print ( "resultant_array : " , result) |
initial_array : [ 1 2 3 45 4 7 810 9 6] resultant_array : (array([5, 7, 8]),)
Method #2: Using numpy.searchsorted()
# Python code to demonstrate # finding elements in range # in numpy array import numpy as np ini_array = np.array([ 1 , 2 , 3 , 45 , 4 , 7 , 9 , 6 ]) # printing initial array print ( "initial_array : " , str (ini_array)); # find elements in range 6 to 10 start = np.searchsorted(ini_array, 6 , 'left' ) end = np.searchsorted(ini_array, 10 , 'right' ) result = np.arange(start, end) # printing result print ( "resultant_array : " , result) |
initial_array : [ 1 2 3 45 4 7 9 6] resultant_array : [5 6 7]
Method #3: Using *
# Python code to demonstrate # finding elements in range # in numpy array import numpy as np ini_array = np.array([ 1 , 2 , 3 , 45 , 4 , 7 , 9 , 6 ]) # printing initial array print ( "initial_array : " , str (ini_array)); # find elements in range 6 to 10 result = ini_array[(ini_array> 6 ) * (ini_array< 10 )] # printing result print ( "resultant_array : " , result) |
initial_array : [ 1 2 3 45 4 7 9 6] resultant_array : [7 9]