Dataset.count(dim=None, *, keep_attrs=None, **kwargs)[source]#

Reduce this Dataset’s data by applying count along some dimension(s).

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

  • 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 calculating count on this object’s data. These could include dask-specific kwargs like split_every.


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

See also

pandas.DataFrame.count, dask.dataframe.DataFrame.count, DataArray.count


User guide on reduction or aggregation operations.


>>> 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)
  * 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.count()
<xarray.Dataset> Size: 8B
Dimensions:  ()
Data variables:
    da       int64 8B 5