首頁 >後端開發 >Python教學 >如何在 Python 中高效轉置二維矩陣?

如何在 Python 中高效轉置二維矩陣?

Susan Sarandon
Susan Sarandon原創
2024-12-22 06:51:09337瀏覽

How Can I Efficiently Transpose a 2D Matrix in Python?

Python 中的矩陣轉置

矩陣轉置涉及翻轉矩陣的行和列以創建一個與原始維度相反的新矩陣。讓我們考慮如何開發一個 Python 函數來轉置 2D 矩陣。

您提供了一個 Python 函數,但它無法正常運作。讓我們檢查您的程式碼並找出錯誤。在您的函數中:

  • 您正在建立一個高度正確但寬度不正確的新轉置矩陣。它應該是 [None] * len(anArray) 而不是 [None] * len(anArray[0])。
  • 您將在每次迭代中覆寫 transpose[t] 中的值。要建立新列,您需要將值附加到 transpose[t] 中的現有清單。

這是函數的修正版本:

def matrixTranspose(anArray):
    transposed = [[] for _ in range(len(anArray))]
    for t in range(len(anArray)):
        for tt in range(len(anArray[t])):
            transposed[tt].append(anArray[t][tt])
    return transposed

另一個簡潔的版本使用Python 的內建zip 函數存在解決方案,該函數組合來自多個可迭代的相應元素。它透過從列建立元組然後將它們轉換回列表來轉置矩陣:

transposed = list(zip(*anArray))

對於Python 3,更喜歡使用* 運算子來解壓元組並建立列表列表:

transposed = [*zip(*anArray)]

這些方法將在Python 中有效地轉置2D 矩陣。

以上是如何在 Python 中高效轉置二維矩陣?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn