cmomy.wrap_resample_vals#
- cmomy.wrap_resample_vals(x, *y, mom, sampler, weight=None, axis=MISSING, mom_params=None, dim=MISSING, axes_to_end=True, out=None, dtype=None, casting='same_kind', order=None, parallel=None, mom_dims=None, rep_dim='rep', 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
.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 variablessampler (
int
or array-like orIndexSampler
or mapping) – Passed throughresample.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
.weight (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.
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).order (
{"C", "F"}
, optional) – Order argument. Seenumpy.asarray()
.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 – Order argument. See
numpy.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.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
rep_dim (hashable) – Name of new ‘replicated’ dimension:
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]])