在Python中,有两种方式可以进行矩阵乘法或者向量的点积运算:dot和multiply。本文将详细介绍它们的使用方法及区别。
一、dot函数
dot函数是numpy包中提供的函数,用于对于两个数组进行矩阵乘法运算。
函数定义:numpy.dot(a, b)
其中,a和b为数组,可以是一维或二维的。若a和b都是一维数组,则进行向量的点积运算;若a和b都是二维数组,则进行矩阵的乘法运算。
1.1 一维向量点积
import numpy as np
vector1 = np.array([1, 2, 3])
vector2 = np.array([4, 5, 6])
result = np.dot(vector1, vector2)
print(result)
输出结果为 32。
以上代码中,vector1和vector2均为一维数组,通过np.dot函数对其进行点积运算,得到向量的点积32。
1.2 二维矩阵乘法
import numpy as np
matrix1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix2 = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
result = np.dot(matrix1, matrix2)
print(result)
输出结果为:
[[ 84 90 96]
[201 216 231]
[318 342 366]]
以上代码中,matrix1和matrix2均为二维数组,通过np.dot函数对其进行矩阵乘法运算,得到矩阵相乘的结果。
二、multiply函数
multiply函数是numpy包中提供的函数,用于对于两个数组中的对应元素进行乘法运算。
函数定义:numpy.multiply(x1, x2)
其中,x1和x2为数组,且大小一致。
2.1 对应分量相乘
import numpy as np
matrix1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix2 = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
result = np.multiply(matrix1, matrix2)
print(result)
输出结果为:
[[ 10 22 36]
[ 52 70 90]
[112 136 162]]
以上代码中,matrix1和matrix2均为二维数组,通过np.multiply函数对其进行对应分量的乘法运算,得到对应元素的乘积矩阵。
2.2 一维数组对应分量相乘
import numpy as np
vector1 = np.array([1, 2, 3])
vector2 = np.array([4, 5, 6])
result = np.multiply(vector1, vector2)
print(result)
输出结果为 [4 10 18]。
以上代码中,vector1和vector2均为一维数组,通过np.multiply函数对其进行对应分量的乘法运算,得到对应元素的乘积向量。
三、总结
在python中,可以通过dot函数进行向量的点积或矩阵的乘法运算,在进行乘法运算时会对整个数组中的元素进行运算;而multiply函数则是对数组中对应的元素进行乘法运算,一般用于实现矩阵对应分量相乘等运算。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对python中的乘法dot和对应分量相乘multiply详解 - Python技术站