行列を転置するPythonプログラム

Pythonでは、マトリックスをネストされたリスト(リスト内のリスト)として実装できます。 各要素を行列の行として扱うことができます。

例えば X = [[1, 2], [4, 5], [3, 6]] 3×2行列を表します。 最初の行は次のように選択できます X[0]。 また、最初の行の最初の列の要素は、次のように選択できます。 X[0][0]

行列の転置は、行と列の交換です。 それはとして示されます バツ’。 の要素 i番目 行と j番目 の列 バツ に配置されます j番目 行と i番目 の列 バツ’。 だからもし バツ 3×2行列であり、 バツ’ 2×3マトリックスになります。

Pythonでこれを実現する方法はいくつかあります。


ネストされたループを使用した行列転置

# Program to transpose a matrix using a nested loop

X = [[12,7],
    [4 ,5],
    [3 ,8]]

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)

出力

[12, 4, 3]
[7, 5, 8]

このプログラムでは、ネストされたものを使用しました for ループして、各行と各列を繰り返し処理します。 各ポイントで、 バツ[i][j] 要素に 結果[j][i]


ネストされたリスト内包表記を使用した行列転置

''' Program to transpose a matrix using list comprehension'''

X = [[12,7],
    [4 ,5],
    [3 ,8]]

result = [[X[j][i] for j in range(len(X))] for i in range(len(X[0]))]

for r in result:
   print(r)

このプログラムの出力は上記と同じです。 ネストされたリスト内包表記を使用して、マトリックス内の各要素を反復処理しました。



Hope this helps!

Source link