xarray.Variable.cumprod#
- Variable.cumprod(dim=None, *, skipna=None, **kwargs)[source]#
Reduce this NamedArray’s data by applying
cumprodalong some dimension(s).- Parameters:
dim (
str,IterableofHashable,"..."orNone, default:None) – Name of dimension[s] along which to applycumprod. For e.g.dim="x"ordim=["x", "y"]. If “…” or None, will reduce over all dimensions.skipna (
boolorNone, 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) orskipna=Truehas not been implemented (object, datetime64 or timedelta64).**kwargs (
Any) – Additional keyword arguments passed on to the appropriate array function for calculatingcumprodon this object’s data. These could include dask-specific kwargs likesplit_every.
- Returns:
reduced (
NamedArray) – New NamedArray withcumprodapplied 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
cumulativemethod are more performant (with numbagg installed) and better supported.cumsumandcumprodmay 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
skipnato control whether NaNs are ignored.>>> na.cumprod(skipna=False) <xarray.NamedArray (x: 6)> Size: 48B array([ 1., 2., 6., 0., 0., nan])