>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.where(a < 5, a, 10*a)
array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90])
import numpy as np
# Return elements chosen from x or y depending on condition.
a = np.arange(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
single_where = np.where((a<5),-1,a) # [-1, -1, -1, -1, -1, 5, 6, 7, 8, 9]
multiple_where = np.where((a<5),-1,np.where((a>5),0,a)) # [-1, -1, -1, -1, -1, 5, 0, 0, 0, 0]
Parameters:
condition : When True, yield x, otherwise yield y.
x, y : Values from which to choose. x, y and condition need to be broadcastable to some shape.
Returns:
out : [ndarray or tuple of ndarrays] If both x and y are specified, the output array contains elements of x where condition is True, and elements from y elsewhere.
In [1]: my_array = arange(10)
In [2]: where((my_array > 3) & (my_array < 7))
Out[2]: (array([4, 5, 6]),)
np.where([[True, False], [True, True]],
... [[1, 2], [3, 4]],
... [[9, 8], [7, 6]])
array([[1, 8],
[3, 4]])
>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.where(a < 5, a, 10*a)
array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90])