向量的点积是两个向量间每个对应分量乘积的和,向量点积的结果是一个标量。向量的点积记为:a ● b,其中a和b是任意n维向量。
假设有下面两个向量a和b,求a ● b。
向量a有a1、a2、……、an个分量,向量b有b1、b2、……、bn个分量,a ● b的结果是:

a ● b = a1*b1 + a2 * b2 + …… + an * bn
举一个实际的例子,设有下面两个二维向量e和f,求e ● f。
e ● f = 2 * 3 + (-1)*5 = 1
进一步考虑,向量自身的点积是什么呢?假设有下面二维向量a。

向量a自身的点积为:

如果我们把向量a看作是二维坐标系中的向量,则向量a的两个分量就是二维坐标系中的坐标点,分量a1是x坐标,分量a2是y坐标。二维坐标系中向量a如下图所示:

从上图可以看出,根据勾股定理得向量a长度的平方等于a1的平方加上a2的平方,由此得出:
向量自身的点积是向量自身长度的平方
向量长度也记为向量的模长,向量的模长等于向量自身点积的二次方根,即:

其中||a||表示向量a的模长,向量a的模长也可以记为:

假设有下面向量c,求向量c的模长。

向量c的模长为:

前面讨论的是二维向量的模长,二维向量模长的计算同样适用于多维向量模长的计算。假设有下面n维向量b。

n维向量b的模长为:
下面我们使用Numpy实现向量的点积与模长计算。
import numpy as np
#创建向量a
a = np.array([2,-1])
#创建向量b
b = np.array([3,5])
if __name__ == '__main__':
#输出a与b的点积
print(np.dot(a,b))
#输出a的模长,对a自身的点积做开方运算
print(np.sqrt(np.dot(a,a)))