_reduce#

xarray_einstats.einops._reduce(da, reduction, out_dims, in_dims=None, dim_lengths=None)[source]#

Wrap einops.reduce.

This is the function that actually interfaces with einops. xarray_einstats.einops.rearrange is the user facing version as it exposes two possible APIs, one of them significantly less verbose and more friendly (but much less flexible).

Parameters:
daxarray.DataArray

Input DataArray to be reduced

reductionstr or callable

One of available reductions (‘min’, ‘max’, ‘sum’, ‘mean’, ‘prod’) by einops.reduce, case-sensitive. Alternatively, a callable f(tensor, reduced_axes) -> tensor can be provided. reduced_axes are passed as a list of int.

out_dimslist of str, list or dict

The output pattern for the dimensions. The dimensions present in

in_dimslist of str or dict, optional

The input pattern for the dimensions. This is only necessary if you want to split some dimensions.

dim_lengthsdict, optional

kwargs with key equal to dimension names in out_dims (that is, strings or dict keys) are passed to einops.rearrange the rest of keys are passed to xarray.apply_ufunc