2024.5.13 行列積
numpyで行列積の計算を行うには「@」演算子を利用する。
code:mul01.py
import numpy as np
# 縦ベクトルと横ベクトルの行列積(どちらも2D-array)
b = np.array(1,2,3)
print('# a:', a.shape)
print(a)
print('# b:', b.shape)
print(b)
print('# 結果')
x1 = a@b
print('# a@b:', x1.shape)
print(x1)
x2 = b@a
print('# b@a:', x2.shape)
print(x2)
matmul関数を用いても同様の結果が得られるが
簡潔に記述できる
可読性が高い
そもそも@とmatmulは同じ処理を行う
以上のことから「@」演算子の利用を推奨する。
code:mul02.py
import numpy as np
# 縦ベクトルと横ベクトル(どちらも2D-array)
b = np.array(1,2,3)
print('# @とmatmulと同じ結果が得られる')
print('# matmul(a,b):')
print(np.matmul(a,b))
print('# matmul(b,a):')
print(np.matmul(b,a))
The matmul function implements the semantics of the @ operator introduced in Python 3.5 following PEP 465.
和:matmul 関数は、PEP 465 に従って Python 3.5 で導入された @ 演算子のセマンティクスを実装します。