如何在 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)

結果

[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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.