You can use the following methods to use the NumPy where() function with multiple conditions:
Method 1: Use where() with OR
#select values less than five or greater than 20 x[np.where((x 5) | (x > 20))]
Method 2: Use where() with AND
#select values greater than five and less than 20 x[np.where((x > 5) & (x 20))]
The following example shows how to use each method in practice.
Method 1: Use where() with OR
The following code shows how to select every value in a NumPy array that is less than 5 or greater than 20:
import numpy as np #define NumPy array of values x = np.array([1, 3, 3, 6, 7, 9, 12, 13, 15, 18, 20, 22]) #select values that meet one of two conditions x[np.where((x 5) | (x > 20))] array([ 1, 3, 3, 22])
Notice that four values in the NumPy array were less than 5 or greater than 20.
You can also use the size function to simply find how many values meet one of the conditions:
#find number of values that are less than 5 or greater than 20
(x[np.where((x 5) | (x > 20))]).size
4
Method 2: Use where() with AND
The following code shows how to select every value in a NumPy array that is greater than 5 and less than 20:
import numpy as np #define NumPy array of values x = np.array([1, 3, 3, 6, 7, 9, 12, 13, 15, 18, 20, 22]) #select values that meet two conditions x[np.where((x > 5) & (x 20))] array([6, 7, 9, 12, 13, 15, 18])
The output array shows the seven values in the original NumPy array that were greater than 5 and less than 20.
Once again, you can use the size function to find how many values meet both conditions:
#find number of values that are greater than 5 and less than 20
(x[np.where((x > 5) & (x 20))]).size
7
Additional Resources
The following tutorials explain how to perform other common operations in NumPy:
How to Calculate the Mode of NumPy Array
How to Find Index of Value in NumPy Array
How to Map a Function Over a NumPy Array