轉載自:https://blog.csdn.net/FrankieHello/article/details/103510118
一:基本概念
(一)點積(dot product)
又稱為數量積、標量積(scalar product)或者內積(inner product)
它是指實數域中的兩個向量運算得到一個實數值標量的二元運算。
舉例:
(二)矩陣乘法
兩個運算的矩陣需要滿足矩陣乘法的規則,即需要前一個矩陣的列與后一個矩陣的行相匹配。
總之:上面的兩個概念都是針對向量或者矩陣的運算,需要和標量的計算區分開來。
二:dot運算
如果參與運算的兩個一維數組,那么得到的結果是兩個數組的內積(inner product);
可以看着沒有進行轉置的矩陣乘法。
注意:兩個向量必須同維度
如果參與運算的是兩個二維數組,那么得到的結果是矩陣乘積(matrix multiplication),兩個參與運算的矩陣需要滿足矩陣乘法的規則,但是官方更推薦使用np.matmul()和@用於矩陣乘法。
三:np.multiply()
和*
星號和np.multiply()方法是針對的是標量的運算,當參與運算的是兩個數組時,得到的結果是兩個數組進行對應位置的乘積(element-wise product),輸出的結果與參與運算的數組或者矩陣的大小一致。
四:np.matmul()
和@
matmul是matrix multiply的縮寫,所以即是專門用於矩陣乘法的函數。另外,@運算方法和matmul()則是一樣的作用,相當於簡便寫法。
五:總結
當進行向量的內積運算時,可以通過np.dot()
當進行矩陣的乘法運算時,可以通過np.matmul()或者@
當進行標量的乘法運算時,可以通過np.multiply()或者*