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).


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