Pythonでライブラリを使わず行列の積を求める方法

Pythonで行列の計算をするときはNumPyを使いますが、ライブラリを使わずに行列の積を求める方法を考えました。

def matrix_multiply(a, b):
  c = []
  for i in range(len(a)):
    r = []
    for k in range(len(b[0])):
      v = 0
      for j in range(len(a[0])):
        v += a[i][j] * b[j][k]
      r.append(v)
    c.append(r)
  return c
a = [[1, 2], [3, 1], [3, 2]]
b = [[1, 3, 5], [2, 4, 1]]
c = matrix_multiply(a, b)
print(c)

結果
[[5, 11, 7], [5, 13, 16], [7, 17, 17]]

コメント

タイトルとURLをコピーしました