ホームページ >バックエンド開発 >Python チュートリアル >Python で 2D 行列を効率的に転置するにはどうすればよいですか?

Python で 2D 行列を効率的に転置するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-22 06:51:09339ブラウズ

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

Python の行列転置

行列転置では、行列の行と列を反転して、元の次元を反転した新しい行列を作成します。 2D 行列を転置する Python 関数を開発する方法を考えてみましょう。

Python 関数を提供しましたが、正しく動作しません。コードを調べてエラーを特定しましょう。関数内:

  • 高さは正しいが幅が正しくない新しい転置行列を作成しています。 [None] * len(anArray[0]) ではなく、[None] * len(anArray) である必要があります。
  • 各反復で 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 で 2D 行列を効率的に転置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。