πΎ Xarray is now 10 years old! π

# xarray.core.rolling.DataArrayRolling.reduce#

DataArrayRolling.reduce(func, keep_attrs=None, **kwargs)[source]#

Reduce the items in this group by applying func along some dimension(s).

Parameters:
• func (`callable()`) β Function which can be called in the form func(x, **kwargs) to return the result of collapsing an np.ndarray over an the rolling dimension.

• keep_attrs (`bool`, default: `None`) β If True, the attributes (`attrs`) will be copied from the original object to the new one. If False, the new object will be returned without attributes. If None uses the global default.

• **kwargs (`dict`) β Additional keyword arguments passed on to func.

Returns:

reduced (`DataArray`) β Array with summarized data.

Examples

```>>> da = xr.DataArray(np.arange(8).reshape(2, 4), dims=("a", "b"))
>>> rolling = da.rolling(b=3)
>>> rolling.construct("window_dim")
<xarray.DataArray (a: 2, b: 4, window_dim: 3)>
array([[[nan, nan,  0.],
[nan,  0.,  1.],
[ 0.,  1.,  2.],
[ 1.,  2.,  3.]],

[[nan, nan,  4.],
[nan,  4.,  5.],
[ 4.,  5.,  6.],
[ 5.,  6.,  7.]]])
Dimensions without coordinates: a, b, window_dim
```
```>>> rolling.reduce(np.sum)
<xarray.DataArray (a: 2, b: 4)>
array([[nan, nan,  3.,  6.],
[nan, nan, 15., 18.]])
Dimensions without coordinates: a, b
```
```>>> rolling = da.rolling(b=3, min_periods=1)
>>> rolling.reduce(np.nansum)
<xarray.DataArray (a: 2, b: 4)>
array([[ 0.,  1.,  3.,  6.],
[ 4.,  9., 15., 18.]])
Dimensions without coordinates: a, b
```