烘焙食品网站建设需求分析,重庆公司社保开户流程,详情图模板,抖音代运营协议书范本python np.dot(a,b)乘法运算
首先我们知道矩阵运算是不满足交换律的#xff0c;np.dot(a, b)与np.dot(b, a)是不一样的 另外np.dot(a,b)和a.dot(b)果是一样的
1.numpy中数组#xff08;矩阵#xff09;相乘np.dot(a,b)运算#xff1a;
对于两数组a和b #xff1a; 示例…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 示例一
a np.array([[3], [3], [3]]) # (3,1)
b np.array([2, 2, 1]) # (3,)print(a, \na的shape, a.shape)
print(b, \nb的shape, b.shape)
c b.dot(a)
print(c, \nc的shape, c.shape)输出 [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)可以直接看他们的shapea的shape为(3, 4)设为(m, n)b的shape为(4, 3)设为(x, y) 对于上面两个数组ab np.dotab的运算条件为nx如果a的shape变为(4, 3)则两则无法dot
简单来说规律就是如果a.shape(m,n),b.shape(x,y)那么**np.dot(a,b)**的运算条件为nx 这一点用于在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:
a np.array([1,1,1]) # shape(3,)
b np.array([[3],[3],[3]]) # shape(3,1)print(np.dot(a,b))
print(dot之后的shape为, np.dot(a,b).shape)那么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)