numpy.dot()
-
如果处理的是一维数组,则得到的是两数组的內积
-
如果是二维数组(矩阵)之间的运算,则得到的是矩阵积(mastrix product),矩阵乘法
numpy.multiply()
实现矩阵对应元素相乘
numpy,matmul()
实现矩阵乘法
对于dot(),multiply(),matmul()三个方法,无论是在numpy数组还是numpy矩阵上运用的含义是一样的;而“”的运用则是不同的,ab,在数组中意味着对应元素相乘;在矩阵中对应着矩阵乘法。
import numpy as np
>>> a1 = np.array([[1,2,3],[4,5,6]]) #二维向量
>>> b1 = np.array([1,2,3])
>>> a2 = np.array([1,2,3]) #一维向量
>>> b2 = np.array([1,2,3])
>>> np.multiply(a1, b1)# 对应元素相乘,使用了Python的广播(broadcast)技术将b1转换为(2,3)的数组
(array([[ 1, 4, 9],
[ 4, 10, 18]])
>>> np.multiply(a2,b2)
array([1, 4, 9])
>>> np.dot(a1, b1), np.dot(a2, b2) # 矩阵乘法
(array([14, 32]), 14)
>>> np.matmul(a1, b1), np.matmul(a2, b2) # 矩阵乘法
(array([14, 32]), 14)
#“*”在不同类型数据中代表不同的含义
>>> a1 * b1 # 对应元素相乘
[[ 1 4 9]
[ 4 10 18]]
>>> a3 = np.matrix([[1,2,3],[4,5,6]])
>>> b3 = np.matrix([[1],[2],[3]])
>>> a3 * b3 # 矩阵乘法
[[14]
[32]]