Routines to perform central moments reduction (reduction)#
Functions:
|
Reduce values to central (co)moments. |
|
Reduce central moments array along axis. |
- cmomy.reduction.reduce_vals(x, *y, mom, axis=MISSING, dim=MISSING, weight=None, mom_dims=None, mom_axes=None, mom_params=None, out=None, dtype=None, casting='same_kind', order=None, parallel=None, axes_to_end=False, keep_attrs=None, apply_ufunc_kwargs=None)[source]#
Reduce values to central (co)moments.
- Parameters:
x (array-like or
DataArrayorDataset) – Values to reduce.*y (array-like or
DataArrayorDataset) – Additional values (needed iflen(mom)==2).yhas same type restrictions and broadcasting rules asweight.mom (
intortupleofint) – Order or moments. If integer or length one tuple, then moments are for a single variable. If length 2 tuple, then comoments of two variablesaxis (
int) – Axis to reduce/sample along.dim (hashable) – Dimension to reduce/sample along.
weight (array-like or
DataArrayorDataset) –Optional weight. The type of
weightmust be “less than” the type ofx.xisDataset:weightcan be aDataset,DataArray, or array-likexis array-like:weightcan be array-like
In the case that
weightis array-like, it must broadcast toxusing usual broadcasting rules (seenumpy.broadcast_to()), with the following exceptions: Ifweightis a 1d array of lengthx.shape[axis]], it will be formatted to broadcast along the other dimensions ofx. For example, ifxhas shape(10, 2, 3)andweighthas shape(10,), thenweightwill be converted to the broadcastable shape(10, 1, 1). Ifweightis a scalar, it will be broadcast tox.shape.mom_dims (hashable or
tupleof hashable) – Name of moment dimensions. Defaults to("mom_0",)formom_ndim==1and(mom_0, mom_1)formom_ndim==2mom_axes (
intortupleofint, optional) – Location of the moment dimensions. Default to(-mom_ndim, -mom_ndim+1, ...). If specified andmom_ndimis None, setmom_ndimtolen(mom_axes). Note that ifmom_axesis specified, negative values are relative to the end of the array. This is also the case foraxesifmom_axesis specified.mom_params (
MomParamsorMomParamsDictordict, optional) – Moment parameters. You can set moment parametersaxesanddimsusing this option. For example, passingmom_params={"dim": ("a", "b")}is equivalent to passingmom_dims=("a", "b"). You can also pass as aMomParamsobject withmom_params=cmomy.MomParams(dims=("a", "b")).out (
ndarray) – Optional output array. If specified, output will be a reference to this array. Note that if the output if method returns aDataset, then this option is ignored.casting (
{'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) –Controls what kind of data casting may occur.
’no’ means the data types should not be cast at all.
’equiv’ means only byte-order changes are allowed.
’safe’ means only casts which can preserve values are allowed.
’same_kind’ means only safe casts or casts within a kind, like float64 to float32, are allowed.
’unsafe’ (default) means any data conversions may be done.
order (
{"C", "F"}, optional) – Order argument. Seenumpy.zeros().parallel (
bool, optional) – IfTrue, use parallel numbanumba.njitornumba.guvectorizedcode if possible. IfNone, use a heuristic to determine if should attempt to use parallel method.keep_attrs (
{"drop", "identical", "no_conflicts", "drop_conflicts", "override"}orbool, optional) –‘drop’ or False: empty attrs on returned xarray object.
’identical’: all attrs must be the same on every object.
’no_conflicts’: attrs from all objects are combined, any that have the same name must also have the same value.
’drop_conflicts’: attrs from all objects are combined, any that have the same name but different values are dropped.
’override’ or True: skip comparing and copy attrs from the first object to the result.
apply_ufunc_kwargs (dict-like) – Extra parameters to
xarray.apply_ufunc(). One useful option ison_missing_core_dim, which can take the value"copy"(the default),"raise", or"drop"and controls what to do with variables of aDatasetmissing core dimensions. Other options arejoin,dataset_join,dataset_fill_value, anddask_gufunc_kwargs. Unlisted options are handled internally.
- Returns:
out (
ndarrayorDataArrayorDataset) – Central moments array of same type asx.out.shape = shape + (mom0, ...)whereshape = np.broadcast_shapes(*(a.shape for a in (x_, *y_, weight_)))[:-1]andx_,y_andweight_are the input arrays withaxismoved to the last axis.
See also
- cmomy.reduction.reduce_data(data, *, axis=MISSING, dim=MISSING, mom_ndim=None, mom_dims=None, mom_axes=None, mom_params=None, out=None, dtype=None, casting='same_kind', order=None, keepdims=False, parallel=None, axes_to_end=False, use_map=None, keep_attrs=None, apply_ufunc_kwargs=None)[source]#
Reduce central moments array along axis.
- Parameters:
data (
ndarrayorDataArrayorDataset) – Moments array(s). It is assumed moment dimensions are last.axis (
int,tupleofint, optional) – Axis(es) to reduce/sample along. Note that negative values are relative todata.ndim - mom_ndim. It is assumed that the last dimensions are for moments. For example, ifdata.shape == (1,2,3)withmom_ndim=1,axis = -1 `` would be equivalent to ``axis = 1. Defaults toaxis=-1. To reduce over multiple dimensions, specify axis = (axis_0, axis_1, …). Passing axis=None reduces over all value dimensions (i.e., all dimensions excluding moment dimensions).dim (hashable or iterable of hashable) – Dimension(s) to reduce along. Value of None implies reduce over all “value” dimensions.
mom_ndim (
{1, 2}, optional) – Value indicates if moments (mom_ndim = 1) or comoments (mom_ndim=2). If not specified and data is anxarrayobject attempt to infermom_ndimfrommom_dims. Otherwise, default tomom_ndim = 1.mom_axes (
intortupleofint, optional) – Location of the moment dimensions. Default to(-mom_ndim, -mom_ndim+1, ...). If specified andmom_ndimis None, setmom_ndimtolen(mom_axes). Note that ifmom_axesis specified, negative values are relative to the end of the array. This is also the case foraxesifmom_axesis specified.mom_dims (hashable or
tupleof hashable) – Name of moment dimensions. If specified, infermom_ndimfrommom_dims. If also passmom_ndim, check thatmom_dimsis consistent withmom_dims. If not specified, defaults todata.dims[-mom_ndim:]. This is primarily used ifdatais aDataset, or ifmom_dimsare not the last dimensions.mom_params (
MomParamsorMomParamsDictordict, optional) – Moment parameters. You can set moment parametersaxesanddimsusing this option. For example, passingmom_params={"dim": ("a", "b")}is equivalent to passingmom_dims=("a", "b"). You can also pass as aMomParamsobject withmom_params=cmomy.MomParams(dims=("a", "b")).out (
ndarray) – Optional output array. If specified, output will be a reference to this array. Note that if the output if method returns aDataset, then this option is ignored.casting (
{'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) –Controls what kind of data casting may occur.
’no’ means the data types should not be cast at all.
’equiv’ means only byte-order changes are allowed.
’safe’ means only casts which can preserve values are allowed.
’same_kind’ means only safe casts or casts within a kind, like float64 to float32, are allowed.
’unsafe’ (default) means any data conversions may be done.
order (
{"C", "F", "A", "K"}, optional) – Order argument. Seenumpy.asarray().keepdims (
bool) – If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the input array.parallel (
bool, optional) – IfTrue, use parallel numbanumba.njitornumba.guvectorizedcode if possible. IfNone, use a heuristic to determine if should attempt to use parallel method.use_map (
bool, optional) – If notFalse, usedata.mapifdatais aDatasetanddimis not a single scalar. This will properly handle cases wheredimisNoneor has multiple dimensions. Note that with this option, variables that do not containdimormom_dimswill be left in the result unchanged.keep_attrs (
{"drop", "identical", "no_conflicts", "drop_conflicts", "override"}orbool, optional) –‘drop’ or False: empty attrs on returned xarray object.
’identical’: all attrs must be the same on every object.
’no_conflicts’: attrs from all objects are combined, any that have the same name must also have the same value.
’drop_conflicts’: attrs from all objects are combined, any that have the same name but different values are dropped.
’override’ or True: skip comparing and copy attrs from the first object to the result.
apply_ufunc_kwargs (dict-like) – Extra parameters to
xarray.apply_ufunc(). One useful option ison_missing_core_dim, which can take the value"copy"(the default),"raise", or"drop"and controls what to do with variables of aDatasetmissing core dimensions. Other options arejoin,dataset_join,dataset_fill_value, anddask_gufunc_kwargs. Unlisted options are handled internally.
- Returns:
out (
ndarrayorDataArrayorDataset) – Reduced data array with shapedata.shapewithaxisremoved. Same type as inputdata.