如何在 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 x = [[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 x = [[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 x = [[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 x = [[1,2],[3,4],[5,6]] print(numpy.transpose(x))
结果
[[1 3 5] [2 4 6]]
广告