14

这个 Python 代码是否真的找到了两个向量的点积?

import operator

vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
4

2 回答 2

48

是的,它确实。这是另一种方式

>>> sum(map( operator.mul, vector1, vector2))
48

operator还有一个根本不用

>>> vector1 = (2,3,5)
>>> vector2 = (3,4,6)
>>> sum(p*q for p,q in zip(vector1, vector2))
48
于 2010-11-04T04:59:32.930 回答
7

您还可以使用点积的 numpy 实现,它在本机代码中具有大型数组优化,以使计算稍微快一些。更好的是,除非您专门尝试编写点积例程或避免依赖关系,否则使用久经考验的广泛使用的库比滚动自己的库要好得多。

于 2010-11-04T05:48:39.337 回答