趋近智
在学习了矩阵乘法之后,另一个你需要掌握的基本运算是转置。本质上,转置矩阵是一个简单的操作:它将矩阵沿其主对角线“翻转”。主对角线是从左上角延伸至右下角的一组元素。当你转置一个矩阵时,它的行变为列,列变为行。
如果你将矩阵视为表示一个数据集,其中行是数据样本,列是特征,那么转置操作有效地交换了这种表示方式。转置后,行将代表特征,列将代表数据样本。这种重新调整数据方向的能力出乎意料的有效,并常被用于数据预处理和机器学习算法的构建中。
矩阵 A 的转置记作 AT。规则很简单: A 中第 i 行第 j 列的元素变为 AT 的第 j 行第 i 列的元素。如果原始矩阵 A 的维度为 m×n (意即 m 行 n 列),那么它的转置 AT 的维度将是 n×m。
我们来看一个例子。考虑以下 2×3 矩阵 A:
A=[142536]要找到它的转置 AT,我们将 A 的第一行 [1, 2, 3] 变为 AT 的第一列。然后将 A 的第二行 [4, 5, 6] 变为 AT 的第二列。得到的矩阵是:
可以看到,维度已经从 2×3 翻转为 3×2。下图展示了这种沿着主对角线的翻转操作。
主对角线元素(1和5)在转置过程中保持不变。其他元素则沿着这条对角线进行反射。
转置具有一些有用的代数性质,值得了解。对于任意矩阵 A 和 B(具有兼容的形状)以及任意标量 c:
你可能会想,我们为什么需要这个操作。转置不仅仅是数学上的奇趣;它是重塑数据和实现计算的核心工具。
它的主要用途之一是使矩阵维度兼容以进行乘法。例如,两个列向量 u 和 v 之间的点积无法通过标准矩阵乘法计算,因为它们的形状(例如 3×1 和 3×1)不兼容。然而,通过转置第一个向量,你可以将点积重写为矩阵乘法:
这个表达式中,一个 1×3 矩阵乘以一个 3×1 矩阵,这是有效且会产生一个 1×1 的标量结果,这正是点积的定义。这种技术在机器学习中随处可见,尤其是在线性回归和神经网络的方程中。
在 NumPy 中执行转置操作非常简单。NumPy 数组有一个 .T 属性,它返回矩阵的转置版本。你不需要特殊的函数;只需访问这个属性即可。
下面是如何在 Python 中创建一个矩阵及其转置:
import numpy as np
# 创建一个 2x4 矩阵 (2 行, 4 列)
A = np.array([
[10, 20, 30, 40],
[50, 60, 70, 80]
])
print("原始矩阵 A:")
print(A)
print("A 的形状:", A.shape)
# 使用 .T 属性获取转置
A_transpose = A.T
print("\n转置矩阵 A.T:")
print(A_transpose)
print("A.T 的形状:", A_transpose.shape)
输出:
原始矩阵 A:
[[10 20 30 40]
[50 60 70 80]]
A 的形状: (2, 4)
转置矩阵 A.T:
[[10 50]
[20 60]
[30 70]
[40 80]]
A.T 的形状: (4, 2)
代码证实了转置操作将数组的形状从 (2, 4) 翻转为 (4, 2)。这个简单的 .T 属性是你为机器学习模型准备数据时会经常使用的。它是一个基本工具,用于在将矩阵输入算法之前,正确地重塑和对齐矩阵。
这部分内容有帮助吗?
ndarray.T属性的官方文档,展示了其在数组转置中的用法。© 2026 ApX Machine Learning用心打造