如何用Python计算点积?

学习者你好!在本文中,我们将看到 Python 代码来查找任何给定数量(例如向量或数组)的点积。Python 编程语言提供了多种方法来执行此操作,下面讨论其中一些方法。

另请阅读:Python 中的矢量化 – 完整指南

什么是点积?

首先,让我们了解“点积”。

在数学中,点积(有时称为标量积)是一种代数运算,它从两个等长的数字序列返回单个值。

该单个值计算为两个序列中相应元素的乘积之和。这些序列可能是单维向量、多维向量或简单的数字。

让我们举个例子来理解这一点:

假设两个向量AB是二维数组 –

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/

到此为止,祝您学习愉快!🙂