Pythonでは、Numpyというライブラリを使うことで簡単に行列の作成や演算を行うことができます。しかし、Numpyを使わずにPythonだけで行列演算を行う方法もあります。今回はその方法を紹介します。
行列の作成
Pythonで行列を作成するには、リストの中にリストを入れることで生成できます。以下のような形になります。
lstQueue = [[a, b], [c, d]]
このようにリストの中にリストを入れることで行列を表現できます。a~dには、数値が入ります。
行列の足し算
行列の足し算は、同じ行数と列数であることが条件になります。その後、同じ成分同士を足し合わせることで行列の足し算が行えます。これをPythonで行おうとすると、様々な書き方がありますが、シンプルに書くと以下のようになります。
lstA = [[3, 7], [6, -4]]
lstB = [[0, 3], [4, -4]]
elem = 0
for a in lstA:
lstTemp = []
elem_a = 0
for a_1 in a:
lstTemp.append(lstB[elem][elem_a] + a_1)
elem_a += 1
lstC.append(lstTemp)
elem += 1
このコードでは、for文を使って行列Aと行列Bの足し算を行っています。
行列の掛け算
行列の掛け算も同様にPythonで行うことができます。以下のようなコードで行列の掛け算を行うことができます。
from operator import mul
array1 = [[2,3],[1,4],[2,1]]
array2 = [[3,1,2],[2,4,2]]
[[sum(map(mul, row, col)) for col in zip(*array2)] for row in array1]
このコードでは、operator
モジュールのmul
関数を使って行列の掛け算を行っています。
以上、PythonでNumpyを使わずに行列演算を行う方法を紹介しました。ライブラリを使わないでコードを書いてみるのも理解につながって楽しいと思います。.