# xarray.DataArray.roll

`DataArray.``roll`(shifts: Mapping[Hashable, int] = None, roll_coords: bool = None, **shifts_kwargs) → xarray.core.dataarray.DataArray

  Roll this array by an offset along one or more dimensions.

  Unlike shift, roll may rotate all variables, including coordinates if specified. The direction of rotation is consistent with `numpy.roll()`.

  Parameters:

  - shifts (Mapping with the form of {dim: offset}) – Integer offset to rotate each of the given dimensions. Positive offsets roll to the right; negative offsets roll to the left.
  - roll_coords (bool) – Indicates whether to roll the coordinates by the offset The current default of roll_coords (None, equivalent to True) is deprecated and will change to False in a future version. Explicitly pass roll_coords to silence the warning.
  - **shifts_kwargs (The keyword arguments form of `shifts`.) – One of shifts or shifts_kwargs must be provided.

  Returns: | rolled – DataArray with the same attributes but rolled data and coordinates.
  Return type: | DataArray

  See also

  `shift()`

  Examples

      >>> arr = xr.DataArray([5, 6, 7], dims='x')
      >>> arr.roll(x=1)
      <xarray.DataArray (x: 3)>
      array([7, 5, 6])
      Coordinates:
        * x        (x) int64 2 0 1