一、python中几种乘法运算的区别
-
1.np.multiplty()
作用:数组和矩阵对应位置相乘,输出结果与相乘数组/矩阵的大小一致.
例如:
- 数组场景:
A = np.arrange(1,5).reshape(2,2)
即 A = array([[1,2],
[3,4]])
B = np.arrange(1,5).reshape(2,2)
即 B = array([[0,1],
[2,3]])
C = np.mulitply(A,B)
C = array([[0,2],
[6,12]])
- 矩阵场景:
np.multiply(np.mat(A),np.mat(B))
得 matrix([[0,2]
[6,12])
np.sum(np.multiply(np.mat(A),np.mat(B))) #输出为标量
-
2.np.dot()函数
作用:对于秩为1的数组,执行对应位置相乘然后再相加;对于秩不为1的数组,执行矩阵乘法运算
例如:
- 数组秩为1的情况:对应位置相乘然后再相加
D = array(np.arrange(1,4))
D = array([1,2,3])
E = array(np.arrange(0,3))
E = array([0,1,2])
np.dot(D,E) #对应位置相乘再求和
输出 8
- 数组秩不为1的情况:执行矩阵乘法运算
A = array([[1,2],
[3,4]])
B = array([[0,1],
[2,3]])
np.dot(A,B)
得 array([[4,7],
[8,15]])
- 矩阵情况:执行乘法运算
np.dot(np.mat(A),np.mat(B))
得 array([[4,7],
[8,15]])
-
3.星号*运算
作用:对数组执行对应位置相乘,对矩阵执行矩阵乘法运算
- 数组场景:对应位置相乘
A = np.arrange(1,5).reshape(2,2)
即 A = array([[1,2],
[3,4]])
B = np.arrange(1,5).reshape(2,2)
即 B = array([[0,1],
[2,3]])
C = np.mulitply(A,B)
C = array([[0,2],
[6,12]])
- 矩阵场景:乘法运算
(np.mat(A))*(np.mat(B)) #执行矩阵乘法运算
得matrix([[4,7],
[8,15]])