xarray.core.groupby.DataArrayGroupBy.count#
- DataArrayGroupBy.count(dim=None, *, keep_attrs=None, **kwargs)[source]#
Reduce this DataArray’s data by applying
countalong some dimension(s).- Parameters:
dim (
str,IterableofHashable,"..."orNone, default:None) – Name of dimension[s] along which to applycount. For e.g.dim="x"ordim=["x", "y"]. If None, will reduce over the GroupBy dimensions. If “…”, will reduce over all dimensions.keep_attrs (
boolorNone, optional) – If True,attrswill 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 calculatingcounton this object’s data. These could include dask-specific kwargs likesplit_every.
- Returns:
reduced (
DataArray) – New DataArray withcountapplied to its data and the indicated dimension(s) removed
See also
pandas.DataFrame.count,dask.dataframe.DataFrame.count,DataArray.count- GroupBy: Group and Bin Data
User guide on groupby operations.
Notes
Use the
floxpackage to significantly speed up groupby computations, especially with dask arrays. Xarray will use flox by default if installed. Pass flox-specific keyword arguments in**kwargs. See the flox documentation for more.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"])), ... ), ... ) >>> da <xarray.DataArray (time: 6)> Size: 48B array([ 1., 2., 3., 0., 2., nan]) 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'
>>> da.groupby("labels").count() <xarray.DataArray (labels: 3)> Size: 24B array([1, 2, 2]) Coordinates: * labels (labels) object 24B 'a' 'b' 'c'