Skip to main content
`Ctrl`+`K`

# numpy.permute_dims

numpy.permute_dims(a, axes=None)

  Returns an array with axes transposed.

  For a 1-D array, this returns an unchanged view of the original array, as a transposed vector is simply the same vector. To convert a 1-D array into a 2-D column vector, an additional dimension must be added, e.g., `np.atleast_2d(a).T` achieves this, as does `a[:, np.newaxis]`. For a 2-D array, this is the standard matrix transpose. For an n-D array, if axes are given, their order indicates how the axes are permuted (see Examples). If axes are not provided, then `transpose(a).shape == a.shape[::-1]`.

  Parameters:
    a array_like

      Input array.

    axes tuple or list of ints, optional

      If specified, it must be a tuple or list which contains a permutation of [0, 1, …, N-1] where N is the number of axes of a. Negative indices can also be used to specify axes. The i-th axis of the returned array will correspond to the axis numbered `axes[i]` of the input. If not specified, defaults to `range(a.ndim)[::-1]`, which reverses the order of the axes.

  Returns:
    p ndarray

      a with its axes permuted. A view is returned whenever possible.

  See also

  `ndarray.transpose`

    Equivalent method.

  `moveaxis`

    Move axes of an array to new positions.

  `argsort`

    Return the indices that would sort an array.

  Notes

  Use `transpose(a, argsort(axes))` to invert the transposition of tensors when using the axes keyword argument.

  Examples

      >>> import numpy as np
      >>> a = np.array([[1, 2], [3, 4]])
      >>> a
      array([[1, 2],
             [3, 4]])
      >>> np.transpose(a)
      array([[1, 3],
             [2, 4]])

      >>> a = np.array([1, 2, 3, 4])
      >>> a
      array([1, 2, 3, 4])
      >>> np.transpose(a)
      array([1, 2, 3, 4])

      >>> a = np.ones((1, 2, 3))
      >>> np.transpose(a, (1, 0, 2)).shape
      (2, 1, 3)

      >>> a = np.ones((2, 3, 4, 5))
      >>> np.transpose(a).shape
      (5, 4, 3, 2)

      >>> a = np.arange(3*4*5).reshape((3, 4, 5))
      >>> np.transpose(a, (-1, 0, -2)).shape
      (5, 3, 4)