xarray.DataArray.where

DataArray.where(cond, other=<NA>, drop=False)

Filter elements from this object according to a condition.

This operation follows the normal broadcasting and alignment rules that xarray uses for binary arithmetic.

Parameters
  • cond (DataArray or Dataset with boolean dtype) – Locations at which to preserve this object’s values.

  • other (scalar, DataArray or Dataset, optional) – Value to use for locations in this object where cond is False. By default, these locations filled with NA.

  • drop (boolean, optional) – If True, coordinate labels that only correspond to False values of the condition are dropped from the result. Mutually exclusive with other.

Returns

Return type

Same type as caller.

Examples

>>> import numpy as np
>>> a = xr.DataArray(np.arange(25).reshape(5, 5), dims=('x', 'y'))
>>> a.where(a.x + a.y < 4)
<xarray.DataArray (x: 5, y: 5)>
array([[  0.,   1.,   2.,   3.,  nan],
       [  5.,   6.,   7.,  nan,  nan],
       [ 10.,  11.,  nan,  nan,  nan],
       [ 15.,  nan,  nan,  nan,  nan],
       [ nan,  nan,  nan,  nan,  nan]])
Dimensions without coordinates: x, y
>>> a.where(a.x + a.y < 5, -1)
<xarray.DataArray (x: 5, y: 5)>
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8, -1],
       [10, 11, 12, -1, -1],
       [15, 16, -1, -1, -1],
       [20, -1, -1, -1, -1]])
Dimensions without coordinates: x, y
>>> a.where(a.x + a.y < 4, drop=True)
<xarray.DataArray (x: 4, y: 4)>
array([[  0.,   1.,   2.,   3.],
       [  5.,   6.,   7.,  nan],
       [ 10.,  11.,  nan,  nan],
       [ 15.,  nan,  nan,  nan]])
Dimensions without coordinates: x, y

See also

numpy.where()

corresponding numpy function

where()

equivalent function