Numpy np.dot()函數用法

應用篇

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.]])

留言