xarray.DataArray.where#
- DataArray.where(cond, other=<NA>, drop=False)[source]#
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
,Dataset
, orcallable()
) – Locations at which to preserve this object’s values. dtype must be bool. If a callable, it must expect this object as its only parameter.other (scalar,
DataArray
orDataset
, optional) – Value to use for locations in this object wherecond
is False. By default, these locations filled with NA.drop (
bool
, default:False
) – If True, coordinate labels that only correspond to False values of the condition are dropped from the result.
- Returns:
DataArray
orDataset
– Same xarray type as caller, with dtype float64.
Examples
>>> a = xr.DataArray(np.arange(25).reshape(5, 5), dims=("x", "y")) >>> a <xarray.DataArray (x: 5, y: 5)> array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]) Dimensions without coordinates: 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
>>> a.where(lambda x: x.x + x.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
>>> a.where(a.x + a.y < 4, -1, drop=True) <xarray.DataArray (x: 4, y: 4)> array([[ 0, 1, 2, 3], [ 5, 6, 7, -1], [10, 11, -1, -1], [15, -1, -1, -1]]) Dimensions without coordinates: x, y
See also
numpy.where
corresponding numpy function
where
equivalent function