结论:
元素乘法:np.multiply(a,b)
矩阵乘法:np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b)
唯独注意:*,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法!
对于 np.array 对象
>>> a
array([[1, 2],
[3, 4]])
- array中对应元素乘法。用 a*b 或 np.multiply(a,b) ,
>>> a*a array([[ 1, 4], [ 9, 16]]) >>> np.multiply(a,a) array([[ 1, 4], [ 9, 16]])
- array中矩阵乘法(内积相乘) 。用 np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b)或者a@b。
>>> np.dot(a,a) array([[ 7, 10], [15, 22]]) >>> np.matmul(a,a) array([[ 7, 10], [15, 22]]) >>> a.dot(a) array([[ 7, 10], [15, 22]])
对于 np.matrix 对象
>>> A
matrix([[1, 2],
[3, 4]])
- 矩阵中元素乘法用 np.multiply(a,b)
>>> np.multiply(A,A) matrix([[ 1, 4], [ 9, 16]])
- 矩阵中矩阵乘法 (内积相乘)用 a*b 或 np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b)或者a@b。
>>> A*A matrix([[ 7, 10], [15, 22]]) >>> np.dot(A,A) matrix([[ 7, 10], [15, 22]]) >>> np.matmul(A,A) matrix([[ 7, 10], [15, 22]]) >>> A.dot(A) matrix([[ 7, 10], [15, 22]])