python3 numpy中矩阵np.dot(a,b)乘法运算
生活随笔
收集整理的這篇文章主要介紹了
python3 numpy中矩阵np.dot(a,b)乘法运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python np.dot(a,b)乘法運算
首先我們知道矩陣運算是不滿足交換律的,np.dot(a, b)與np.dot(b, a)是不一樣的
另外np.dot(a,b)和a.dot(b)果是一樣的
1.numpy中數組(矩陣)相乘np.dot(a,b)運算:
對于兩數組a和b :
示例一:
輸出:
[3][3]] a的shape (3, 1) [2 2 1] b的shape (3,) [15] c的shape (1,)示例二:
a = np.array([[2,2,2,1],[3,3,3,1],[4,4,4,4]]) # shape=(3,4) b = np.array([[1,1,1],[2,2,2],[3,3,3],[4,4,4]]) # shape=(4,3)可以直接看他們的shape:a的shape為(3, 4)設為(m, n);b的shape為(4, 3)設為(x, y)
對于上面兩個數組a,b:
np.dot(a,b)的運算條件為:n==x,如果a的shape變為(4, 3)則兩則無法dot
- 簡單來說規律就是:如果a.shape=(m,n),b.shape=(x,y)那么**np.dot(a,b)**的運算條件為:n=x (這一點用于在python理解和快速判斷數組的shape是否用對了)
- 實際上數組運算的規律將兩個數組畫出來,是這樣的:
也就是矩陣的乘法運算
2.np.dot(a,b)運算之后的結果解析
規律:dot之后會將兩組數組中相等的(符合dot條件的)維度消掉,得到剩下的維度組合成新的數組,如果剩下只有一個維度則為行(對應一維),列是無
對于a.shape=(m,n),b.shape=(x,y):
dot之后n和x會消掉,結果shape變成(m,y)
如果n為1(或者空),shape變為(y,)
e.g1:
那么,3和3消掉,剩下只有一個數1,對應1行沒有列==>(1,)
運算結果:
[9]
dot之后的shape為:(1,)
e.g2:
a.shape=(4,1) b.shape=(1,4)那么( 1和1消掉,剩下(4,4) )
np.dot(a,b)的shape為(4,4)
總結
以上是生活随笔為你收集整理的python3 numpy中矩阵np.dot(a,b)乘法运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像特征提取与描述_角点特征04:LBP
- 下一篇: nginx服务无法启动,启动时报错106