numpy.transpose#

numpy.transpose(a, axes=None)[来源]#

返回一个轴被转置的数组。

对于一维数组,这将返回原始数组的一个未更改的视图,因为转置后的向量就是同一个向量。要将一维数组转换为二维列向量,必须添加额外的维度,例如,np.atleast_2d(a).T 可以实现这一点,a[:, np.newaxis] 也可以。对于二维数组,这是标准的矩阵转置。对于 n 维数组,如果提供了 axes,它们的顺序指示了轴如何排列(请参阅示例)。如果未提供 axes,则 transpose(a).shape == a.shape[::-1]

参数:
a类数组对象

输入数组。

axes整数元组或列表,可选

如果指定,它必须是一个元组或列表,其中包含 [0, 1, ..., N-1] 的排列,其中 N 是 a 的轴数。负索引也可用于指定轴。返回数组的第 i 个轴将对应于输入轴的 axes[i]。如果未指定,则默认为 range(a.ndim)[::-1],它会反转轴的顺序。

返回:
pndarray

具有轴排列的 a。在可能的情况下返回一个视图。

另请参阅

ndarray.transpose

等效方法。

moveaxis

将数组的轴移动到新位置。

argsort

返回将数组排序的索引。

备注

使用 transpose(a, argsort(axes)) 来反转使用 axes 关键字参数时张量的转置。

示例

>>> 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)