本人在學習Python數據分析時的線性代數運算章節中,遇到矩陣乘法的dot函數的用法一時難於理解,后來,經查閱其他博主的相關資料,總結詳解如下
1、NumPy庫中dot()函數語法定義:
import numpy as np np.dot(a, b, out=None) #該函數的作用是獲取兩個元素a,b的乘積.
2、前面講過數組的運算是元素級的,數組相乘的結果是各對應元素的積組成的數組,而對於矩陣而言,需要求的是點積,這里NumPy庫提供了用於矩陣乘法的dot函數。在jupyter notebook中執行的代碼運算如下:

3、這樣的多維數組矩陣運算,通過Python代碼來實現倒是挺方便的,但是,通過我們人眼看起來,對於剛入門的朋友來說,可能會很吃力,或者不清楚該結果是怎么實現的,接下來,我給大家一一介紹一下運算過程。
4、如下單個數的dot函數運算所示:
np.dot(5,8) 40
5、如下一維數組的dot函數運算所示:

#如果arr1和arr都是一維數組,那么它返回的就是向量的內積。 arr1 = np.array([2,3]) arr1 array([2, 3]) arr2 = np.array([4,5]) arr2 array([4, 5]) np.dot(arr1,arr2) 23 arr3 = np.array([2,3,4]) arr3 array([2, 3, 4]) arr4 = np.array([5,6,7]) arr4 array([5, 6, 7]) np.dot(arr3,arr4) 56
利用表格計算法來解釋上面的一維數組乘積的結果計算過程如下表1,表2,所示:
表 1 表 2
通過上表中的計算過程顯示,是不是很快就能清楚,矩陣之間的運算。從而快速了解運算結果的由來。
6、如下二維數組的dot函數運算所示:
二維數組矩陣之間的dot函數運算得到的乘積是矩陣乘積

利用表格計算法來解釋上面的,二維數組乘積的結果計算過程如下表3,所示:
表 3
7、如下二維數組與三維數組的dot函數運算:

利用表格計算法來解釋上面的,二維數組與三維數組的矩陣乘積的結果計算過程如下表4,所示:
表 4
8、如下多維數組的dot函數運算所示:

利用表格計算法來解釋上面的,多維數組的矩陣乘積的結果計算過程如下表5,表6,表7所示:
表 5 表 6
表 7
9、dot()函數可以通過NumPy庫調用,也可以由數組實例對象進行調用。例如:a.dot(b) 與 np.dot(a,b)效果相同。但矩陣積計算不遵循交換律,np.dot(a,b) 和 np.dot(b,a) 得到的結果是不一樣的。