np.dot()、np.multiply()、np.matmul()方法以及*和@運算符的用法總結


轉載自: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()或者* 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM