配列による行列演算
配列(ndarray型)は Python における行列演算のための主要なオブジェクト型である。配列を用いて適切な行列計算を行うためのコーディング力を身に付けよう。
「配列」≠「行列」に注意
行列の計算は、
加算、減算 ... 要素毎に行われるので、配列がそのまま利用できる。
乗算 ... 線形代数で習っているとおり「要素毎ではない」ので注意が必要。
除算 ... 行列同士の割り算は定義されていない、対応するものとして逆行列がある。 code:mat_add_subtract1.py
import numpy as np
x = np.array(1, 2], [3, 4)
y = np.array(3, 3], [3, 3)
add = x + y # 加算
print(add)
sub = x - y # 減算
print(sub)
以上で示した演算の様子を、行列やベクトルの間で行われる計算ルールと比較してみると、
加算と減算について、形状の異なる配列同士の場合はブロードキャストが適用される点に注意すること。やはり「配列」≠「行列」である。 例:ベクトルと行列の加算は数学的には計算できないが、配列の場合は計算できる。
数学的にはこんな計算はできない:$ \left[\begin{array}{cc} a_{00} & a_{01} \\ a_{10} & a_{11} \end{array}\right] + \left[\begin{array}{c} b_{0} \\ b_{1} \end{array}\right]