跳到主要内容

Python 程序:转置矩阵

要理解这个例子,你应当了解以下Python 编程主题的知识:

在 Python 中,我们可以将矩阵实现为嵌套列表(列表中的列表)。我们可以把每个元素当作矩阵的一行。

例如 X = [[1, 2], [4, 5], [3, 6]] 表示一个 3x2 矩阵。第一行可以被选为 X[0]。而第一行第一列的元素可以被选为 X[0][0]

矩阵的转置是行和列的交换。它表示为 X'。X 中第 i 行第 j 列的元素将被放置在 X' 中第 j 行第 i 列。所以如果 X 是一个 3x2 矩阵,X' 将是一个 2x3 矩阵。

这里有几种在 Python 中实现这一功能的方法。

使用嵌套循环进行矩阵转置

# 使用嵌套循环转置矩阵的程序
X = [[12,7],
[4 ,5],
[3 ,8]]

result = [[0,0,0],
[0,0,0]]

# 遍历行
for i in range(len(X)):
# 遍历列
for j in range(len(X[0])):
result[j][i] = X[i][j]

for r in result:
print(r)

输出

[12, 4, 3]
[7, 5, 8]

在这个程序中,我们使用了嵌套的 for 循环来遍历每一行和每一列。在每个点,我们将 X[i][j] 元素放入 result[j][i]。

使用列表推导进行矩阵转置

''' 使用列表推导转置矩阵的程序 '''

X = [[12,7],
[4 ,5],
[3 ,8]]

result = [[X[j][i] for j in range(len(X))] for i in range(len(X[0]))]

for r in result:
print(r)

这个程序的输出与上面相同。我们使用了嵌套列表推导来遍历矩阵中的每个元素。