使用array時,運算符 * 用於計算數量積(點乘),函數 dot() 用於計算矢量積(叉乘).
使用matrix時,運算符 * 用於計算矢量積,函數 multiply() 用於計算數量積.
下面是使用array時:
1. 同線性代數中矩陣乘法的定義: np.dot()
np.dot(A, B):對於二維矩陣,計算真正意義上的矩陣乘積,同線性代數中矩陣乘法的定義。對於一維矩陣,計算兩者的內積。
2. 對應元素相乘 element-wise product: np.multiply(), 或 *
在Python中,實現對應元素相乘,有2種方式,一個是np.multiply(),另外一個是*。這兩種的效果是一樣的。
請看代碼:
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 3 4 import numpy as np 5 6 X = np.array([[1,2],[3,4]]) 7 Y = np.array([[5,6],[7,8]]) 8 9 a1 = np.dot(X,Y) 10 print('np.dot(X,Y)=\n',a1) 11 12 a2 = np.multiply(X,Y) 13 print('np.multiply(X,Y)=\n',a2)
運行結果:
np.dot(X,Y)= [[19 22] [43 50]] np.multiply(X,Y)= [[ 5 12] [21 32]] X*Y= [[ 5 12] [21 32]]