Numpy的基礎四則運算中有和,差,以及內積。在這邊要介紹的是如何使用Numpy對矩陣做計算。
ndarray的四則運算
首先,我們先來確認ndarrary的四則運算。ndarray的加減乘除計算方式被定義成:只會對各個項進行加減。但是在內積的部分的話就有點不同。這邊我們現來看看基本的加減乘除的方式。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# array([[1, 2, 3],
# [4, 5, 6],
# [7, 8, 9]])
b = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]])
# array([[10, 20, 30],
# [40, 50, 60],
# [70, 80, 90]])
a + b # 足し算
# array([[11, 22, 33],
# [44, 55, 66],
# [77, 88, 99]])
a - b # 引き算
# array([[ -9, -18, -27],
# [-36, -45, -54],
# [-63, -72, -81]])
a * b # 掛け算
# array([[ 10, 40, 90],
# [160, 250, 360],
# [490, 640, 810]])
a / b # 割り算
# array([[ 0.1, 0.1, 0.1],
# [ 0.1, 0.1, 0.1],
# [ 0.1, 0.1, 0.1]])
由上面結果我們可以看到,在做基本的加減乘除的時候,各個項都是獨立做計算的。接著我們來看看內積的運算。
矩陣的內積
從下面的代碼我們可以看到,對a, b兩個矩陣做內積時我們會用到numpy的np.dot()函數。寫法也就是np.dot(a, b)。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
np.dot(a, b)
# array([[ 6, 12, 18],
# [15, 30, 45],
# [24, 48, 72]])
我們也可以從下面的代碼中確認到,在使用單位矩陣np.eye(3)對一個3×3的矩陣做計算時,不管是np.dot(a, b), 還是np.dot(b, a),結果都會相同。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
e = np.eye(3)
# array([[ 1, 0, 0],
# [ 0, 1, 0],
# [ 0, 0, 1]])
np.dot(a, e)
# array([[ 1., 2., 3.],
# [ 4., 5., 6.],
# [ 7., 8., 9.]])
np.dot(e, a)
# array([[ 1., 2., 3.],
# [ 4., 5., 6.],
# [ 7., 8., 9.]])
留言