EverET.org

好记性不如烂笔头

Python计算点积

| Comments

想起我们在C++中,要实现一个点积,如果是固定维数的向量,我们或许会通过这么一个成员函数来实现

cpp
1
2
3
4
Point2d DotProduct(const Point2d& rhs)
{
    return Point2d(m_x * rhs.x(), m_y * rhs.y());
}

对于非固定维数的向量,我们或许动用一个循环,然后又变成了一坨代码。

当我们使用Python的时候,就会简单很多很多。

python
1
2
3
4
5
6
7
8
9
10
11
In [6]: dotproduct =
           lambda v1, v2: sum(itertools.imap(operator.mul, v1, v2))

In [7]: dotproduct([1,2], [3,4])
Out[7]: 11

In [8]: dotproduct((1,3,5), (4,5,7))
Out[8]: 54

In [9]: dotproduct((1,3,5,10,6), (4,5,7,2,4))
Out[9]: 98
本文链接: http://everet.org/python-dot-product.html

您可能也喜欢

Comments