Python 的 numpy 库中的 transpose 函数用于对数组进行转置操作。数组不仅有 transpose 方法,还有一个特殊的 T 属性。简单的转置可以使用.T,它其实就是进行轴对换而已。可以改变数组的轴的顺序,这在处理多维数组时非常有用。本文主要介绍一下NumPy中transpose方法的使用。

numpy.transpose

numpy.transpose(a, axes=None)     [source]

反转或排列数组的轴; 返回修改后的数组。

对于具有两个轴的数组a,transpose(a)给出矩阵转置。

参数 :

a :array_like

输入数组。

axestuple 或 int类型的list, 可选

如果指定,它必须是包含[0,1,..,N-1]

的排列的元组或列表,

其中N是a的轴数。 

返回数组的第i个轴将

与输入的编号为axes [i]的轴相对应。 

如果未指定,

则默认为range(a.ndim)[::-1]

这将反转轴的顺序。

返回值 :

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 参数来指定转置后轴的顺序。默认情况下,axesNone,即数组的轴顺序会反转(相当于对所有维度都调用 [::-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 可以处理任意维度的数组,并允许显式指定轴的顺序。

推荐文档

相关文档

大家感兴趣的内容

随机列表