对于numpy.array:
*(multiply)意思是对应位置的元素相乘
如果希望对array对象进行严格的矩阵乘法,必须使用numpy.dot()或者numpy.matmul()函数,这两者是等效的:
numpy.dot(a,b,out=None)
numpy.matmul(a,b,out=None)
对于Matrix对象上情况是相反的,必须使用np.multiply()函数。因为*重载矩阵运算规则只限于matrix对象,且满足基本运算规则。
小结:
1.对于array对象,*和np.multiply都是数量积,对于矩阵运算用np.dot和np.matmul;
2.对于matrix对象,*是正常的矩阵运算,数量积是用np.multiply()函数。