numpy.permute_dims#
- numpy.permute_dims(a, axes=None)[source]#
返回一个轴已转置的数组。
对于一维数组,这会返回原始数组的一个未更改的视图,因为转置的向量与原向量相同。要将一维数组转换为二维列向量,必须添加一个额外的维度,例如,
np.atleast_2d(a).T
可以实现这一点,a[:, np.newaxis]
也可以。对于二维数组,这是标准的矩阵转置。对于 n 维数组,如果给定 `axes`,它们的顺序表示轴是如何置换的(参见示例)。如果未提供 `axes`,则transpose(a).shape == a.shape[::-1]
。- 参数:
- aarray_like
输入数组。
- 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)