【python】矩阵运算中的“ * ” 和 np.dot() 的使用
a = np.array([[1,2],
[3,4]])
b = np.array([[1,2],
[3,4]])
print(a*b) # *是数学意义的点乘,即对应元素相乘再相加
print(np.dot(a,b)) # 可以清楚的看到,dot是数学意义的矩阵乘法
out:
[[ 1 4]
[ 9 16]]
[[ 7 10]
[15 22]]
# 一维数组和矩阵的dot
a = np.array([[1,2,4],
[4,5,6]])
b = np.array([1,2])
print(a.shape,b.shape)
print(np.dot(b,a)) # (2,) dot (2,3) = (3,)
b = np.array([1,2,3])
print(a.shape,b.shape)
print(np.dot(a,b)) # (2,3) dot (3,) = (2,)
out:
(2, 3) (2,)
[ 9 12 16]
(2, 3) (3,)
[17 32]
# 数组和矩阵的*
a = np.array([1,2,3])
b = np.array([[1,2,4],
[4,5,6]])
print(a*b) # 对应维度的元素个数相同才能进行*
out:
[[ 1 4 12]
[ 4 10 18]]