写在最前面
1.本文将尽量简明直观的介绍点积运算,及其在python中的简单应用。对点积运算的理解将对机器学习的算法编写提供相当大的帮助。
2.本文代码使用python及numpy科学算法库进行编写。
3.很重要的一点是:向量A与向量B的点积 并不等于 向量B与向量A的点积,我们用A·B表示两个向量的点积运算,则A·B!=B·A(或者你习惯于A·B<>B·A的表述)。
一维相量的点积运算
若A 和 B 均为一维向量,且均包含有n个元素,则A与B的点积为:
A[0]B[0]+A[1]B[1]+...+A[n]*B[n]。
# A 和 B 均为一维向量,且均包含有n个元素,则A与B的点积为:
# A[0]*B[0]+A[1]*B[1]+...+A[n]*B[n]。
# 即下标相同的元素的乘积之和。没错,出来的是一个数字。
# 举个例子
A=[1,2,3,4,5]
B=[5,4,3,2,1]
print('A与B的点积为:',np.dot(A,B)) #此处np.dot(A,B)就是求A与B的点积运算
#输出>A与B的点积为: 35
上例中,35=1*5+2*4+3*3+4*2+5*1=5+8+9+8+5
如果你认为这很简单,那么有没有想过二维向量的点积会如何呢?
哦,对了,提一句。一般我们使用大写字母表示向量,小写字母表示具体的某一项。不出意外的话,是国际通用的。
二维向量的点积运算
二维数组的点积相对复杂一些。
先来个