xarray.Dataset.where

Dataset.where(cond, other=<NA>, drop: bool = 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
condDataArray or Dataset with boolean dtype

Locations at which to preserve this object’s values.

otherscalar, DataArray or Dataset, optional

Value to use for locations in this object where cond is False. By default, these locations filled with NA.

dropboolean, optional

If True, coordinate labels that only correspond to False values of the condition are dropped from the result. Mutually exclusive with other.

Returns
Same type as caller.

See also

numpy.where

corresponding numpy function

where

equivalent function

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