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