python numpy中array和mat型別矩陣乘法的三種方式比較(np.dot()、*、np.multiply())
阿新 • • 發佈:2020-12-13
import numpy as np # np.array() # 1. np.dot() 矩陣乘法 a = np.array([[1, 2], [3, 4]]) b = np.array([[1, 2], [3, 4]]) c = np.dot(a, b) print(c) # 2. * 對應相乘 d = a * b print(d) # 3. np.multiply() 對應相乘 e = np.multiply(a, b) print(e) # np.mat() # 1. np.dot() 矩陣乘法 a1 = np.mat([[1, 2], [3, 4]], dtype=np.float) b1 = np.mat([[1, 2], [3, 4]], dtype=np.float) c1 = np.dot(a1, b1) print(c1) # 2. * 矩陣乘法 C = a1 * b1 print(C) # 3. np.multiply() 對應相乘 E = np.multiply(a1, b1) print(E)
結果
總結
np.dot()對於array和mat都是矩陣乘法
*對於array是對應相乘,對於mat是矩陣乘法
np.multiply()對於array和mat都是對應相乘
對於列向量乘行向量,其矩陣乘法和對應相乘結果是一致的;其餘情況結果不同。