一、numpy生成的array对象,在使用*和np.multiply时,是接的两者对象对应位置相乘。
1、矩阵*乘列向量
a=np.array([[1,2],[3,4]])
a
array([[1, 2],
[3, 4]])
b=np.array([[2],[3]])
b
array([[2],
[3]])
a*b
ans=a*b
ans
array([[ 2, 4],
[ 9, 12]])
2、矩阵*乘常数
ans=a*2
ans
array([[2, 4],
[6, 8]])
3、矩阵乘行向量
c=np.array([2,3])
c
array([2, 3])
ans=a*c
ans
array([[ 2, 6],
[ 6, 12]])
小结:
由上述的乘法可见,numpy在使用*乘和np.multiply算法时,是对应位置分别相乘,并不是实际的算术矩阵乘法。
二、算术矩阵乘法使用np.dot(a,b)
1、矩阵a与列向量的算术矩阵乘法
ans=np.dot(a,b)
ans
array([[ 8],
[18]])
2、矩阵a与行向量相乘
a
array([[1, 2],
[3, 4]])
c
array([2, 3])
ans=np.dot(a,c)
ans
array([ 8, 18])