numpy.transpose
numpy.transpose(a, axes=None) [source]
反转或排列数组的轴; 返回修改后的数组。
对于具有两个轴的数组a,transpose(a)
给出矩阵转置。
参数 : | a :array_like 输入数组。 axes : 如果指定,它必须是包含 的排列的元组或列表, 其中N是a的轴数。 返回数组的第i个轴将 与输入的编号为 如果未指定, 则默认为 这将反转轴的顺序。 |
返回值 : | p :ndarray 轴已排列的a。 尽可能返回一个视图。 |
Notes
使用axes关键字参数时,可使用transpose(a,argsort(axes))反转张量的转置。
转置一维数组将返回原始数组的不变视图。
例子
1)基本使用
numpy.transpose
最基本的使用方法是将一个多维数组的维度顺序反转。
import numpy as np # 创建一个二维数组 arr = np.array([[1, 2, 3], [4, 5, 6]]) # 对数组进行转置 transposed_arr = np.transpose(arr) print(transposed_arr)
2)指定轴的顺序
可以通过传递 axes
参数来指定转置后轴的顺序。默认情况下,axes
为 None
,即数组的轴顺序会反转(相当于对所有维度都调用 [::-1]
)。
import numpy as np # 三维数组示例 arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # 将轴顺序从 (0, 1, 2) 转换为 (1, 0, 2) transposed_arr = np.transpose(arr, axes=(1, 0, 2)) print(transposed_arr)
3) 对高维数组进行转置
numpy.transpose
还可以用于处理更高维度的数组,例如三维、四维等。
import numpy as np # 四维数组示例 arr = np.random.rand(2, 3, 4, 5) # 将轴顺序从 (0, 1, 2, 3) 转换为 (3, 2, 1, 0) transposed_arr = np.transpose(arr, axes=(3, 2, 1, 0)) print("原数组形状:", arr.shape) print("转置后数组形状:", transposed_arr.shape)
4)等效的数组方法 .T
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 使用 .T 转置
transposed_arr = arr.T
print(transposed_arr)
注意:.T
只适用于二维数组,而 numpy.transpose
可以处理任意维度的数组,并允许显式指定轴的顺序。