DataArray.rank(dim, *, pct=False, keep_attrs=None)[source]#

Ranks the data.

Equal values are assigned a rank that is the average of the ranks that would have been otherwise assigned to all of the values within that set. Ranks begin at 1, not 0. If pct, computes percentage ranks.

NaNs in the input array are returned as NaNs.

The bottleneck library is required.

  • dim (Hashable) – Dimension over which to compute rank.

  • pct (bool, default: False) – If True, compute percentage ranks, otherwise compute integer ranks.

  • keep_attrs (bool or None, optional) – If True, the dataset’s attributes (attrs) will be copied from the original object to the new one. If False (default), the new object will be returned without attributes.


ranked (DataArray) – DataArray with the same coordinates and dtype ‘float64’.


>>> arr = xr.DataArray([5, 6, 7], dims="x")
>>> arr.rank("x")
<xarray.DataArray (x: 3)> Size: 24B
array([1., 2., 3.])
Dimensions without coordinates: x