where function¶
(Shortest import: from brian2 import where)
-
brian2.units.unitsafefunctions.where(condition[, x, y])[source]¶ Return elements, either from
xory, depending oncondition.If only
conditionis given, returncondition.nonzero().Parameters: condition : array_like, bool
When True, yield
x, otherwise yieldy.x, y : array_like, optional
Values from which to choose.
xandyneed to have the same shape ascondition.Returns: out : ndarray or tuple of ndarrays
If both
xandyare specified, the output array contains elements ofxwhereconditionis True, and elements fromyelsewhere.If only
conditionis given, return the tuplecondition.nonzero(), the indices whereconditionis True.See also
nonzero(),choose()Notes
If
xandyare given and input arrays are 1-D,where()is equivalent to:[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
Examples
>>> np.where([[True, False], [True, True]], ... [[1, 2], [3, 4]], ... [[9, 8], [7, 6]]) array([[1, 8], [3, 4]])
>>> np.where([[0, 1], [1, 0]]) (array([0, 1]), array([1, 0]))
>>> x = np.arange(9.).reshape(3, 3) >>> np.where( x > 5 ) (array([2, 2, 2]), array([0, 1, 2])) >>> x[np.where( x > 3.0 )] # Note: result is 1D. array([ 4., 5., 6., 7., 8.]) >>> np.where(x < 5, x, -1) # Note: broadcasting. array([[ 0., 1., 2.], [ 3., 4., -1.], [-1., -1., -1.]])
Find the indices of elements of
xthat are ingoodvalues.>>> goodvalues = [3, 4, 7] >>> ix = np.in1d(x.ravel(), goodvalues).reshape(x.shape) >>> ix array([[False, False, False], [ True, True, False], [False, True, False]], dtype=bool) >>> np.where(ix) (array([1, 1, 2]), array([0, 1, 1]))