xarray.IndexVariable.cumprod

xarray.IndexVariable.cumprod#

IndexVariable.cumprod(dim=None, *, skipna=None, **kwargs)[source]#

Reduce this NamedArray’s data by applying cumprod along some dimension(s).

Parameters
  • dim (str, Iterable of Hashable, "..." or None, default: None) – Name of dimension[s] along which to apply cumprod. For e.g. dim="x" or dim=["x", "y"]. If “…” or None, will reduce over all dimensions.

  • skipna (bool or None, optional) – If True, skip missing values (as marked by NaN). By default, only skips missing values for float dtypes; other dtypes either do not have a sentinel missing value (int) or skipna=True has not been implemented (object, datetime64 or timedelta64).

  • **kwargs (Any) – Additional keyword arguments passed on to the appropriate array function for calculating cumprod on this object’s data. These could include dask-specific kwargs like split_every.

Returns

reduced (NamedArray) – New NamedArray with cumprod applied to its data and the indicated dimension(s) removed

See also

numpy.cumprod, dask.array.cumprod, Dataset.cumprod, DataArray.cumprod, NamedArray.cumulative

Aggregation

User guide on reduction or aggregation operations.

Notes

Non-numeric variables will be removed prior to reducing.

Note that the methods on the cumulative method are more performant (with numbagg installed) and better supported. cumsum and cumprod may be deprecated in the future.

Examples

>>> from xarray.namedarray.core import NamedArray
>>> na = NamedArray(
...     "x",
...     np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1.,  2.,  3.,  0.,  2., nan])
>>> na.cumprod()
<xarray.NamedArray (x: 6)> Size: 48B
array([1., 2., 6., 0., 0., 0.])

Use skipna to control whether NaNs are ignored.

>>> na.cumprod(skipna=False)
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1.,  2.,  6.,  0.,  0., nan])