読んでる。
- 作者: 高橋信,井上いろは,トレンドプロ
- 出版社/メーカー: オーム社
- 発売日: 2008/11/01
- メディア: 単行本
- 購入: 3人 クリック: 21回
- この商品を含むブログ (10件) を見る
図にするの面倒なのでnumpyでやる。(numpyだったらわかるんだけどな…)
>>> import numpy as np >>> a = np.array([[1, 2], [3,4]]) >>> a array([[1, 2], [3, 4]]) >>> b = np.array([[4, 5], [7, 5]]) >>> b array([[4, 5], [7, 5]])
行列の行数と列数が等しい行列はn次正方行列と呼ばれる
>>> a = np.ones([5, 5]) >>> a.shape (5, 5) >>> a array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]])
行列の和は成分通しの足し算
>>> a + b array([[ 5, 7], [10, 9]])
行列の差は成分通しの引き算
>>> a - b array([[-3, -3], [-4, -1]])
スカラー倍は成分に掛け算すればいい
>>> a * 10 array([[10, 20], [30, 40]])
積
正直面倒。これは計算がパッと浮かぶようになるまで手を動かしたほうが良い(プログラムじゃなくて紙とペンで計算の流れを書くってこと)
>>> np.dot(a, b) array([[18, 15], [40, 35]])
通常の掛け算とは違い、左右の値を入れ替えると答えは一致しない
>>> np.dot(b, a) array([[19, 28], [22, 34]])
また、積はmxn行列はnxp行列のように左側の行列の列数と右側の行列の行数が等しくなければ計算できない
>>> a.shape (2, 2) # 行数2 列数2 >>> c = np.array([1, 2, 3]) >>> c.shape (3,) # 行数3 列数1 >>> np.dot(a, c) # 計算できないのでエラー Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: shapes (2,2) and (3,) not aligned: 2 (dim 1) != 3 (dim 0)