Pythonで行列を1行で転置する方法!NumPyのtranspose()の使い方
Pythonで行列(2次元配列)を転置したいとき、最も手軽な方法はNumPyパッケージに含まれるtranspose()関数を使うことです。ndarrayオブジェクトに対してこのメソッドを呼び出すだけで、行と列が入れ替わった転置配列を1行のコードで取得できます。
NumPyのtranspose()で転置する基本例
>>> import numpy as np
>>> a = np.array([[1, 2], [3, 4]])
>>> a
array([[1, 2],
[3, 4]])
>>> a.transpose()
array([[1, 3],
[2, 4]])
上の例では、元の配列 [[1, 2], [3, 4]] の行と列が入れ替わり、[[1, 3], [2, 4]] という転置行列が得られています。
.T属性でさらに簡潔に書く
NumPyには transpose() のショートカットとして .T属性 も用意されています。コードが短くなり可読性も向上するため、実際の開発ではこちらがよく使われます。
>>> a.T
array([[1, 3],
[2, 4]])
NumPyを使わずリストのまま転置する方法
通常のリストの状態で転置したい場合は、組み込み関数 zip(*matrix) を利用できます。結果はタプルのリストになるため、必要に応じて list(map(list, ...)) でリストに変換しましょう。
>>> matrix = [[1, 2], [3, 4]]
>>> list(zip(*matrix))
[(1, 3), (2, 4)]
まとめ
- NumPyのndarrayなら
transpose()メソッドまたは.T属性で1行で転置できる - リストのまま処理したい場合は
zip(*matrix)が便利 - 大規模な数値データを扱うなら、高速に動作するNumPyの利用がおすすめ
-
【Python】Matplotlibでグラフの線にラベルを付ける方法
Matplotlibでグラフの線にラベルを付けるには、plot()メソッドの引数にlabelを指定します。ラベルを付けた線は、legend()メソッドで凡例として図に表示できます。手順図のサイズを設定し、サブプロット間および周囲の余白を調整します。plot()メソッドを使用し、label="line1" を指定して1本目の線をプロットします。同様に、label="line2" を指定して2本目の線をプロットします。図に凡例を配置するには、legend()メソッドを使用します。図を画面に表示するには、show()メソッドを使用します。コード例from ma
-
Pythonで行列の転置を求めるプログラム
この記事では、与えられた問題に対する解法とアプローチについて詳しく解説します。 問題文 ある行列が与えられたとき、その転置を同じ行列に格納し、結果を表示する必要があります。 行列の転置とは、行を列に、列を行に入れ替えたものです。言い換えれば、行列Aの転置は、要素A[i][j]をA[j][i]と入れ替えることで得られます。 実装例 N = 4 def transpose(A): for i in range(N): for j in range(i+1, N): A[i][j], A[j][i] = A[j][i], A[i][j] # ドライ