一、需求
實現矩陣乘法與除法。本篇blog主要是針對基於numpy實現的矩陣乘法與除法。
二、矩陣乘法
方式一:np.dot
定義兩個多維數組,滿足矩陣乘法規則,直接調用即可。
# np.dot
import numpy as np
a = np.ones([2,3])
b = np.zeros([3,5])
print(np.dot(a,b))
方式二:基於np.mat
import numpy as np
a = np.mat(np.ones([2,3]))
b = np.mat(np.zeros([3,5]))
print(a*b)
注意:如果是np.array直接相乘的話是逐元素的進行的,這裏顯然會報錯,而且也不符合矩陣乘法。
三、矩陣除法
所謂矩陣除法A/B,其實就是矩陣A與矩陣B的逆矩陣B.I的乘法。因此需要藉助np.mat來處理
import numpy as np
a = np.asmatrix(np.ones([2,3]))
b = np.asmatrix(np.ones([3,3]))
b[1,1] = 5
b[0,2]=3
b[2,2] = 2
print(b)
print(a,b.I)
四、關於直接乘與直接除
對於np.array來說,直接乘除都是逐元素的
對於np.matrx來說,直接乘除都是按照矩陣乘除來做的。
a = np.ones([2,3])
b = np.zeros([2,3])
print(a*b)