#### Previous topic

numpy.reshape

#### Next topic

numpy.rot90

# numpy.roll

`numpy.``roll`(a, shift, axis=None)

  Roll array elements along a given axis.

  Elements that roll beyond the last position are re-introduced at the first.

  Parameters: | a : array_like Input array. shift : int The number of places by which elements are shifted. axis : int, optional The axis along which elements are shifted. By default, the array is flattened before shifting, after which the original shape is restored.
  Returns: | res : ndarray Output array, with the same shape as a.

  See also

  `rollaxis`
    Roll the specified axis backwards, until it lies in a given position.

  Examples

      >>> x = np.arange(10)
      >>> np.roll(x, 2)
      array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7])

      >>> x2 = np.reshape(x, (2,5))
      >>> x2
      array([[0, 1, 2, 3, 4],
             [5, 6, 7, 8, 9]])
      >>> np.roll(x2, 1)
      array([[9, 0, 1, 2, 3],
             [4, 5, 6, 7, 8]])
      >>> np.roll(x2, 1, axis=0)
      array([[5, 6, 7, 8, 9],
             [0, 1, 2, 3, 4]])
      >>> np.roll(x2, 1, axis=1)
      array([[4, 0, 1, 2, 3],
             [9, 5, 6, 7, 8]])