在 NumPy 中,数组转置指的是 “将数组的行和列” 进行互换。对于转置操作,我们需要清楚以下几点。
- 转置操作不会修改原数组,而是返回一个新数组。
- 如果数组是一维数组,转置操作不会改变其形状。
- 对于高维数组,转置需要明确轴的顺序。
NumPy 提供了多种方法来实现数组转置,常用的有以下 2 种方式。
- 使用 T 属性。
- 使用 numpy.transpose() 函数。
T 属性转置数组
在 NumPy 中,我们可以使用 T 属性来转置数组。使用 T 属性是最简单的方法,适用于任意维度的数组。
语法:
ndarray.T说明:
T 是数组对象(即 ndarray 对象)的一个属性,用于返回数组的转置。
示例 1:T 属性基本用法
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
result = arr.T # 转置数组
print(arr)
print(result)
print(arr.shape)
print(result.shape)运行结果如下。
[[1 2]
[3 4]
[5 6]]
[[1 3 5]
[2 4 6]]
(3, 2)
(2, 3)分析:
从结果可以看出,arr.T 转置了数组 arr,原来的行变成了列,而原来的列变成了行。
示例 2:一维数组使用 T 属性
import numpy as np
arr = np.array([1, 2, 3])
result = arr.T
print(arr)
print(result)
print(arr.shape)
print(result.shape)运行结果如下。
[1 2 3]
[1 2 3]
(3,)
(3,)分析:
从结果可以看出,对于一维数组,使用 T 属性进行转置后,数组的形状并没有发生改变。
numpy.transpose() 转置数组
在 NumPy 中,我们可以使用 transpose() 函数来转置数组。
语法:
numpy.transpose(arr, axes=None)说明:
transpose() 函数接收以下 2 个参数。
arr(必选):是一个数组。axes(可选):用于指定转置的轴顺序。
示例 3:numpy.transpose() 转置二维数组
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
result = np.transpose(arr) # 转置数组
print(arr)
print(result)运行结果如下。
[[1 2]
[3 4]
[5 6]]
[[1 3 5]
[2 4 6]]分析:
从结果可以看出,numpy.transpose(arr) 转置了 arr(这是一个二维数组),原来的行变成了列,而原来的列变成了行。
示例 4:numpy.transpose() 转置多维数组
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
result = np.transpose(arr, axes=(1, 0, 2)) # 交换第0轴和第1轴
print(result)运行结果如下。
[[[1 2]
[5 6]]
[[3 4]
[7 8]]]