xarray.Dataset.cumsum (original) (raw)
Dataset.cumsum(dim=None, *, skipna=None, keep_attrs=None, **kwargs)[source]#
Reduce this Dataset’s data by applying cumsum
along some dimension(s).
Parameters:
- dim (str,
Iterable
ofHashable
,"..."
or None, default: None) – Name of dimension[s] along which to applycumsum
. For e.g.dim="x"
ordim=["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). - keep_attrs (bool or None, optional) – If True,
attrs
will be copied from the original object to the new one. If False, the new object will be returned without attributes. - **kwargs (
Any
) – Additional keyword arguments passed on to the appropriate array function for calculatingcumsum
on this object’s data. These could include dask-specific kwargs likesplit_every
.
Returns:
reduced (Dataset) – New Dataset with cumsum
applied to its data and the indicated dimension(s) removed
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
da = xr.DataArray( ... np.array([1, 2, 3, 0, 2, np.nan]), ... dims="time", ... coords=dict( ... time=("time", pd.date_range("2001-01-01", freq="ME", periods=6)), ... labels=("time", np.array(["a", "b", "c", "c", "b", "a"])), ... ), ... ) ds = xr.Dataset(dict(da=da)) ds <xarray.Dataset> Size: 120B Dimensions: (time: 6) Coordinates:
- time (time) datetime64[ns] 48B 2001-01-31 2001-02-28 ... 2001-06-30 labels (time) <U1 24B 'a' 'b' 'c' 'c' 'b' 'a' Data variables: da (time) float64 48B 1.0 2.0 3.0 0.0 2.0 nan
ds.cumsum() <xarray.Dataset> Size: 48B Dimensions: (time: 6) Dimensions without coordinates: time Data variables: da (time) float64 48B 1.0 3.0 6.0 6.0 8.0 8.0
Use skipna
to control whether NaNs are ignored.
ds.cumsum(skipna=False) <xarray.Dataset> Size: 48B Dimensions: (time: 6) Dimensions without coordinates: time Data variables: da (time) float64 48B 1.0 3.0 6.0 6.0 8.0 nan