cmomy.wrap_resample_vals#
- cmomy.wrap_resample_vals(x, *y, sampler, mom, weight=None, axis=MISSING, dim=MISSING, mom_dims=None, mom_axes=None, mom_params=None, rep_dim='rep', out=None, dtype=None, casting='same_kind', order=None, parallel=None, axes_to_end=False, keep_attrs=None, apply_ufunc_kwargs=None)[source]#
Create wrapped object from resampled values.
- Parameters:
x (array-like or
DataArray
orDataset
) – Values to reduce.*y (array-like or
DataArray
orDataset
) – Additional values (needed iflen(mom)==2
).y
has same type restrictions and broadcasting rules asweight
.sampler (
int
or array-like orIndexSampler
or mapping) – Passed throughcmomy.resample.factory_sampler()
to create anIndexSampler
. Value can either benrep
(the number of replicates),freq
(frequency array), aIndexSampler
object, or a mapping of parameters. The mapping can have form ofFactoryIndexSamplerKwargs
. Allowable keys arefreq
,indices
,ndat
,nrep
,nsamp
,paired
,rng
,replace
,shuffle
.mom (
int
ortuple
ofint
) – Order or moments. If integer or length one tuple, then moments are for a single variable. If length 2 tuple, then comoments of two variablesweight (array-like or
DataArray
orDataset
) –Optional weight. The type of
weight
must be “less than” the type ofx
.x
isDataset
:weight
can be aDataset
,DataArray
, or array-likex
is array-like:weight
can be array-like
In the case that
weight
is array-like, it must broadcast tox
using usual broadcasting rules (seenumpy.broadcast_to()
), with the following exceptions: Ifweight
is a 1d array of lengthx.shape[axis]]
, it will be formatted to broadcast along the other dimensions ofx
. For example, ifx
has shape(10, 2, 3)
andweight
has shape(10,)
, thenweight
will be converted to the broadcastable shape(10, 1, 1)
. Ifweight
is a scalar, it will be broadcast tox.shape
.axis (
int
) – Axis to reduce/sample along.dim (hashable) – Dimension to reduce/sample along.
mom_dims (hashable or
tuple
of hashable) – Name of moment dimensions. Defaults to("mom_0",)
formom_ndim==1
and(mom_0, mom_1)
formom_ndim==2
mom_axes (
int
ortuple
ofint
, optional) – Location of the moment dimensions. Default to(-mom_ndim, -mom_ndim+1, ...)
. If specified andmom_ndim
is None, setmom_ndim
tolen(mom_axes)
. Note that ifmom_axes
is specified, negative values are relative to the end of the array. This is also the case foraxes
ifmom_axes
is specified.mom_params (
MomParams
orMomParamsDict
ordict
, optional) – Moment parameters. You can set moment parametersaxes
anddims
using this option. For example, passingmom_params={"dim": ("a", "b")}
is equivalent to passingmom_dims=("a", "b")
. You can also pass as aMomParams
object withmom_params=cmomy.MomParams(dims=("a", "b"))
.rep_dim (hashable) – Name of new ‘replicated’ dimension:
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.njit
ornumba.guvectorized
code if possible. IfNone
, use a heuristic to determine if should attempt to use parallel method.axes_to_end (
bool
) – IfTrue
, place sampled dimension (if exists in output) and moment dimensions at end of output. Otherwise, place sampled dimension (if exists in output) at same position as inputaxis
and moment dimensions at same position as input (if input does not contain moment dimensions, place them at end of array).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 aDataset
missing core dimensions. Other options arejoin
,dataset_join
,dataset_fill_value
, anddask_gufunc_kwargs
. Unlisted options are handled internally.
- Returns:
wrapped (
CentralMomentsArray
orCentralMomentsData
) – Wrapped object. If input data is anxarray
object, then returnCentralMomentsData
instance. Otherwise, returnCentralMomentsArray
instance.
See also
Examples
>>> import cmomy >>> rng = cmomy.default_rng(0) >>> x = rng.random(10) >>> cmomy.wrap_resample_vals(x, mom=2, axis=0, sampler=dict(nrep=5)) <CentralMomentsArray(mom_ndim=1)> array([[10. , 0.5397, 0.0757], [10. , 0.5848, 0.0618], [10. , 0.5768, 0.0564], [10. , 0.6138, 0.1081], [10. , 0.5808, 0.0685]])