■ Python 3
今回もNumpyパッケージについて学習です。
◆ 行列
今回は、行列の掛け算について。
m×n列の行列といえば…
で、行列の掛け算を行うときは、
掛けられる側の行列の列数 = 掛ける側の行列の行数
である必要があります。
行列A×行列Bであれば、
(行列Aの列数)=(行列Bの行数)
を満たしていなければ、行列の掛け算はできません。
まずは、要素数が「12」の配列を生成。
(12は約数が多いので、いろいろ形状を調整するには便利)
そこから、2行6列の行列 array_1 と 6行2列の行列 array_2 を生成します。
この array_1 と array_2 であれば、array1・array2の計算はできるはずなので、試しに掛けてみると…。
…エラーになりました。
どうやら、行列の形状が揃っていないのでダメみたいで、「*」演算子では行列の掛け算はできないようで…。
ちなみに、「*」でできるのは、行列の同一位置要素同士の掛け算になるようですね。
なので、各要素を2乗した同一型の行列になりますね。
Pythonのバージョンにもよりますが、行列の掛け算をするには「@」演算子を使えばよさそう。(バージョンに依存したくなければ、np.dot(行列1, 行列2) でよいようです)
ちなみに念のため、行列の掛け算のための前提を満たしていない(行数列数が条件を満たさない)ケースで実験すると…
きちんとエラーになりましたし、わかりやすくエラー説明を出してくれています。