numpy.where() in Python
The NumPy module provides a function numpy.where() for selecting elements based on a condition. It returns elements chosen from a or b depending on the condition.
For example, if all arguments -> condition, a & b are passed in numpy.where() then it will return elements selected from a & b depending on values in bool array yielded by the condition.
If only the condition is provided, this function is a shorthand to the function np.asarray (condition).nonzero(). Although nonzero should be preferred directly, as it behaves correctly for subclasses.
Syntax:
Parameters:
These are the following parameters in numpy.where() function:
condition: array_like, bool
If this parameter set to True, yield x otherwise yield y.
x, y: array_like:
This parameter defines the values from which to choose. The x, y, and condition need to be broadcastable to some shape.
Returns:
This function returns the array with elements from x where the condition is True and elements from y elsewhere.
Example 1: np.where()
In the above code
- We have imported numpy with alias name np.
- We have created an array ‘a’ using np.arange() function.
- We have declared the variable ‘b’ and assigned the returned value of np.where() function.
- We have passed the array ‘a’ in the function.
- Lastly, we tried to print the value of b.
In the output, the values ranging from 0 to 5 remain the same as per the condition, and the other values have been multiplied with 5.
Output:
array([ 0, 1, 2, 3, 4, 5, 30, 35, 40, 45, 50, 55])
Example 2: For multidimensional array
Output:
array([[1, 8], [3, 4]])
Example 3: Broadcasting x, y, and condition
Output:
array([[10, 11, 12, 13], [ 1, 11, 12, 13], [ 2, 2, 12, 13]])
In the above code
- We have imported numpy with alias name np.
- We have created an array ‘a’ using np.arange() function.
- We declared the variable ‘b’ and assigned the returned value of np.where() function.
- We have passed a multidimensional array of boolean as a condition and x and y as an integer arrays.
- Lastly, we tried to print the value of b.
In the output, the x value has been compared to y value if it satisfied the condition, then it will be printed x value otherwise, it will print y value, which has passed as an argument in the where() function.
Example 4: Broadcasting specific value
Output:
array([[ 0, 1, 2], [ 0, 2, -2], [ 0, -2, -2]])