1. ホーム
  2. スクリプト・コラム
  3. パイソン

PythonによるNumpyの行列演算

2022-02-02 19:51:53

線形代数を学習する際に触れる行列同士の掛け算は、行列のフォーク掛けを前提に

行列Aが次数m*n、Bが次数p*qで、ABが乗算できる場合、まず:n=pを満たすこと、つまりAの列数とBの行数が等しいことが必要であり、その操作は以下のように行われる。

当時、線形代数を学ぶ際に先生方が教えていたより直感的な表記は

ドットプロダクトはこのようになります。

2 つの行列 a, b があるとき,Matlab では以下のように内積とフォーク積を実装します.

a.*b % for dot product
a*b % is a fork multiplication




ここでは、pythonで行うことを説明します。

import numpy as np

a = np.range(1, 10).reshape(3, 3)
b = np.range(1, 10).reshape(3, 3)
print(a)
print(a*b) # dot product only allows 1*m and m*n

a1 = np.mat(np.range(1, 10).reshape(3, 3))
a2 = np.mat(np.range(1, 10).reshape(3, 3))
a3 = np.dot(a1, a2) # use dot for fork multiplication
print(a1)
print(a3)



走行の結果

使用方法 python と同じように動作します。 Matlab Numpyライブラリのdot関数は、配列の掛け算をするためのものです。

PythonでNumpyの行列演算に関する記事は以上となります。PythonでのNumpyの行列演算については、スクリプトハウスの過去記事を検索するか、以下の記事を引き続き閲覧してください。