行列の積
1冊でマスター 大学の線形代数, p.25
numpyの@
演算子を使えばいいだけであるが、勉強なので定義どおりに実装しておく。
import numpy as np def mat_mult(a, b): num_rows_a, num_cols_a = len(a), len(a[0]) num_rows_b, num_cols_b = len(b), len(b[0]) c = [[None for _ in range(num_cols_b)] for _ in range(num_rows_a)] for i in range(num_rows_a): for j in range(num_cols_b): c[i][j] = sum([a[i][_] * b[_][j] for _ in range(num_cols_a)]) return c a = [[1, -2], [2, 3],] b = [[-2, 1], [3, -1],] print(mat_mult(a, b)) print(mat_mult(b, a)) a = np.array(a) b = np.array(b) print(a@b) print(b@a)