Numpy中矩陣向量乘法np.dot()及np.multiply()以及*區別

Numpy中的矩陣向量乘法分別是np.dot(a,b)、np.multiply(a,b) 以及*,剛開始接觸的時候比較模糊,於是自己整理了一下。先來介紹理論,然後再結合例子深入瞭解一下。

數組 矩陣
元素乘法 np.multiply(a,b) 或 a*b np.multiply(a,b)
矩陣乘法 np.dot(a,b) np.dot(a,b) 或 a* b

我們可以看到:
當對象是數組時候,對應元素乘法使用 np.multiply(a,b) 或a * b,矩陣乘法用np.dot(a,b)
當對象是矩陣時候,對應元素乘法使用np.multiply(a,b) , 矩陣乘法用np.dot(a,b)或 a*b

注:數組和矩陣對應元素相乘,輸出與相乘數組/矩陣的大小一致

對於 np.array 對象

>>> a
array([[1, 2],
       [3, 4]])

當對象是數組時候,元素乘法使用 np.multiply(a,b) 或 a*b

>>> np.multiply(a,a)
array([[ 1,  4],
       [ 9, 16]])
       
>>> a*a
array([[ 1,  4],
       [ 9, 16]])

當對象是數組時候,矩陣乘法用np.dot(a,b)、np.matmul(a,b) 或者a.dot(b)

>>> np.dot(a,a)
array([[ 7, 10],
      [15, 22]])
      
>>> np.matmul(a,a)
array([[ 7, 10],
      [15, 22]])
      
>>> a.dot(a)
array([[ 7, 10],
      [15, 22]])

對於 np.matrix 對象

>>> A
matrix([[1, 2],
        [3, 4]])

當對象是矩陣時候,元素乘法使用np.multiply(a,b)

>>> np.multiply(A,A)
matrix([[ 1,  4],
        [ 9, 16]])

當對象是矩陣時候,矩陣乘法用np.dot(a,b)、np.matmul(A,A)、a.dot(b)或 a*b

>>> np.dot(A,A)
matrix([[ 7, 10],
        [15, 22]])
        
>>> np.matmul(A,A)
matrix([[ 7, 10],
        [15, 22]])
        
>>> A.dot(A)
matrix([[ 7, 10],
        [15, 22]])
        
>>> A*A
matrix([[ 7, 10],
        [15, 22]])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章