如何在 Python 中转置矩阵?


转置矩阵意味着我们将矩阵的列转换为行。让我们通过一个例子来理解转置后的矩阵是什么样子。

假设你有一个原始矩阵,例如 -

x = [[1,2][3,4][5,6]]

在上面的矩阵“x”中,我们有两列,包含 1、3、5 和 2、4、6。

因此,当我们转置上面的矩阵“x”时,列变为行。所以上面矩阵的转置版本看起来像这样 -

x1 = [[1, 3, 5][2, 4, 6]]

因此,我们有另一个矩阵“x1”,它以不同的方式组织,在不同位置具有不同的值。

下面是在 Python 中实现此操作的几种方法 -

方法 1 - 使用嵌套循环进行矩阵转置 -

#Original Matrix
= [[1,2],[3,4],[5,6]]
result = [[0, 0, 0], [0, 0, 0]]
# Iterate through rows
for i in range(len(x)):
   #Iterate through columns
   for j in range(len(x[0])):
      result[j][i] = x[i][j]
   for r in Result
print(r)

结果

[1, 3, 5]
[2, 4, 6]

方法 2 - 使用嵌套列表推导式进行矩阵转置。

#Original Matrix
= [[1,2],[3,4],[5,6]]
result = [[x[j][i] for j in range(len(x))] for i in range(len(x[0]))]
for r in Result
   print(r)

结果

[1, 3, 5]
[2, 4, 6]

列表推导式允许我们编写简洁的代码,应该在 Python 中经常使用。

方法 3 - 使用 Zip 进行矩阵转置

#Original Matrix
= [[1,2],[3,4],[5,6]]
result = map(list, zip(*x))
for r in Result
   print(r)

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

结果

[1, 3, 5]
[2, 4, 6]

方法 4 - 使用 numpy 库进行矩阵转置 Numpy 库是一个数组处理包,旨在高效地操作大型多维数组。

import numpy
#Original Matrix
= [[1,2],[3,4],[5,6]]
print(numpy.transpose(x))

结果

[[1 3 5]
[2 4 6]]

更新于: 2019-07-30

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告