学习者你好!在本文中,我们将看到 Python 代码来查找任何给定数量(例如向量或数组)的点积。Python 编程语言提供了多种方法来执行此操作,下面讨论其中一些方法。
另请阅读:Python 中的矢量化 – 完整指南
什么是点积?
首先,让我们了解“点积”。
在数学中,点积(有时称为标量积)是一种代数运算,它从两个等长的数字序列返回单个值。
该单个值计算为两个序列中相应元素的乘积之和。这些序列可能是单维向量、多维向量或简单的数字。
让我们举个例子来理解这一点:
假设两个向量A和B是二维数组 –
A = [ [1 2 ] [3 4] ] 且 B = [ [5 6] [7 8] ]
然后,AB 给出为
[ [ 19 22] [ 43 50] ]
计算公式为 [ [ ((1*5)+(2*7)) ((1*6)+(2*8)) ] [ ((3*5)+(4*7)) ((3 *6)+(4*8)) ] ]
求点积的Python代码
Python 提供了一种求两个序列点积的有效方法,即numpy 库的numpy.dot()方法。
Numpy.dot() 是一种将两个序列作为参数(无论是向量还是多维数组)的方法,并打印结果,即点积。要使用这种方法,我们必须导入python的numpy库。让我们看几个例子:
示例 1:标量的点积
在此示例中,我们将采用两个标量值,并使用 numpy.dot() 打印它们的点积。
两个标量的点积只需将它们相乘即可获得。
假设两个标量 A = 7 和 B = 6,则 AB = 42
#importing numpy library import numpy as np #Taking two scalars a = 3 b = 8 #calculating dot product using dot() print ( "The dot product of given scalars = a.b =" ,np.dot(a,b)) |
上述代码的输出是:
The dot product of given scalars = a.b = 24 |
示例 2:数组的点积
在这里,我们将采用两个数组。这些数组可以是一维、二维或多维的。在 dot() 的帮助下,我们将计算它们的点积。我们正在考虑使用两个二维数组来计算点积。
二维数组的点积是通过矩阵乘法计算的。
#importing numpy library import numpy as np #Taking two 2-D arrays a = [ [ 1 , 2 ], [ 3 , 4 ]] b = [ [ 7 , 6 ], [ 5 , 4 ]] #calculating dot product using dot() print ( "The dot product of given arrays :" ) np.dot(a,b)) |
输出是:
The dot product of given arrays : array( [ [ 17 , 14 ], [ 41 , 34 ] ] ) |
笔记:
对于二维或多维数组,点积不可交换。即,ab 不等于ba 在示例2 中,我们计算的点积为ab,而不是ba。这将给出完全不同的结果。
结论
那么,用Python计算点积是不是很简单呢?有了可用的功能,当然可以。这是我这边的情况。我希望你能理解这篇文章。更多此类文章,请关注https://www.askpython.com/
到此为止,祝您学习愉快!🙂