如何在 Python 中一行程式碼轉置矩陣?


在本文中,我們將向您展示如何在 Python 中一行程式碼轉置矩陣。以下是完成此任務的各種方法:

  • 使用巢狀列表推導式
  • 使用 NumPy 模組
  • 使用 zip() 函式

什麼是矩陣的轉置?

矩陣轉置是交換行和列。它縮寫為 A'。A' 的第 i 行第 j 列的元素將移動到 A' 的第 j 行第 i 列。


使用巢狀列表推導式

演算法(步驟)

以下是執行所需任務的演算法/步驟:

  • 建立一個變數來儲存輸入矩陣。

  • 使用 for 迴圈遍歷輸入矩陣中的每個元素並列印相應的元素來列印給定的輸入矩陣。

  • 使用 for 迴圈和 range() 函式(返回一個從 0 開始,以 1 為增量(預設),並在給定數字之前停止的數字序列)遍歷直到達到行數,然後在 for 迴圈內部,使用另一個 for 迴圈和 len() 函式(len() 方法返回物件中的專案數)遍歷直到達到列數,並使用巢狀列表推導式將元素儲存在列表中。

  • 使用 for 迴圈遍歷上述得到的轉置矩陣中的每個元素並列印相應的元素來列印輸入矩陣的轉置。

示例

以下程式使用巢狀列表推導式返回輸入矩陣的轉置:

# input matrix inputMatrix= [[1, 4, 2],[2, 0, 3]] # printing input matrix print("Input matrix:") # traversing through each element in the input matrix for i in inputMatrix: # printing element print(i) # Transposing the matrix # Iterating till number of rows using for loop(n iterator) and # till number of columns using another for loop(m iterator) and storing the element(inputMatrix[n][m]) transposeMatrix= [ [inputMatrix[n][m] for n in range(len(inputMatrix))] for m in range(len(inputMatrix[0]))] # printing transpose of a matrix print("Transpose of an input matrix:") # traversing through each element in the above transpose matrix for i in transposeMatrix: # printing corresponding element print(i)

輸出

執行上述程式將生成以下輸出:

Input matrix:
[1, 4, 2]
[2, 0, 3]
Transpose of an input matrix:
[1, 2]
[4, 0]
[2, 3]

使用 NumPy 模組

NumPy 是一個 Python 庫,用於計算和處理多維和一維列表元素。這裡將使用 NumPy 模組的 transpose() 函式。它返回列表的轉置。

NumPy 是一個 Python 庫,旨在高效地處理 Python 中的陣列。它快速、易於學習且儲存效率高。它還改進了資料處理方式。在 NumPy 中,我們可以生成 n 維陣列。要使用 NumPy,我們只需將其匯入到我們的程式中,然後我們就可以輕鬆地在程式碼中使用 NumPy 的功能。

NumPy 是一個流行的 Python 包,用於科學和統計分析。NumPy 陣列是由相同資料型別的值組成的網格。

演算法(步驟)

以下是執行所需任務的演算法/步驟:

  • 使用 import 關鍵字匯入 NumPy 模組。

  • 使用 for 迴圈遍歷輸入矩陣中的每個元素並列印相應的元素來列印給定的輸入矩陣。

  • 使用 NumPy 模組的 transpose() 函式(返回列表的轉置)透過將輸入矩陣作為引數傳遞給它來獲取轉置輸入矩陣,並建立一個變數來儲存它。

  • 列印生成的輸入矩陣的轉置。

示例

以下程式使用 NumPy.transpose() 函式返回輸入矩陣的轉置:

# importing numpy module import numpy # input matrix inputMatrix= [[1, 4, 2],[2, 0, 3]] # printing input matrix print("Input matrix:") # traversing through each element in the input matrix for i in inputMatrix: # printing element print(i) # getting the transpose an input matrix transposeMatrix = numpy.transpose(inputMatrix) # printing transpose of a matrix print("Transpose of an input matrix:\n", transposeMatrix)

輸出

執行上述程式將生成以下輸出:

Input matrix:
[1, 4, 2]
[2, 0, 3]
Transpose of an input matrix:
[[1 2]
 [4 0]
 [2 3]]

使用 zip() 函式

Python 的 zip() 函式返回一個元組迭代器,其中第 i 個元組包含來自每個引數序列的第 i 個元素。

這裡我們使用 * 解壓我們的陣列,然後壓縮它以獲得轉置。

演算法(步驟)

以下是執行所需任務的演算法/步驟:

  • 建立一個變數來儲存輸入矩陣。

  • 使用 for 迴圈遍歷輸入矩陣中的每個元素並列印相應的元素來列印給定的輸入矩陣。

  • 使用 zip() 函式壓縮輸入陣列(這裡它轉置矩陣)。

  • 列印輸入矩陣的轉置。

示例

以下程式使用 zip() 函式返回輸入矩陣的轉置:

# input matrix inputMatrix= [(1, 4, 2),(2, 0, 3), (4, 2, 5)] # printing input matrix print("Input matrix:") # traversing through each element in the input matrix for i in inputMatrix: # printing element print(i) # getting the transpose an input matrix transposeMatrix = zip(*inputMatrix) # printing transpose of a matrix print("Transpose of an input matrix:") # traversing through each element in the above transpose matrix for i in transposeMatrix: # printing corresponding element at the iterator index print(i)

輸出

執行上述程式將生成以下輸出:

Input matrix:
(1, 4, 2)
(2, 0, 3)
(4, 2, 5)
Transpose of an input matrix:
(1, 2, 4)
(4, 0, 2)
(2, 3, 5)

結論

在本文中,我們學習瞭如何在 Python 中一行程式碼找到轉置。我們使用了三種方法來完成這項工作。我們首先使用巢狀列表推導式,然後轉向 Numpy 模組,最後轉向 zip() 方法。

更新於:2022年10月27日

2K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告