Cou氏の徒然日記

ほのぼの日記ブログです。

Python3の学習 その11 (numpyパッケージ #2)

Python

今回も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) でよいようです)

 

ちなみに念のため、行列の掛け算のための前提を満たしていない(行数列数が条件を満たさない)ケースで実験すると…

きちんとエラーになりましたし、わかりやすくエラー説明を出してくれています。