Open In App

Python | Find elements within range in numpy

Last Updated : 12 Mar, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

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)


Output:

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)


Output:

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)


Output:

initial_array :  [ 1  2  3 45  4  7  9  6]
resultant_array :  [7 9]


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads