从向量乘法推演到向量夹角余弦值的计算方法,并推广到矩阵夹角余弦值计算,最终用numpy库实现计算高维矩阵每一个行向量之间的余弦距离计算。可以用此代码计算两个图像每一个像素位的余弦值【以rgb颜色值为向量,计算颜色的相似度】,也支持其它更多高维矩阵(把高维向量的最后一个维度用于计算余弦相似度)。
向量余弦值的计算
向量乘积的计算公式:
向量a=(x1,y1),向量b=(x2,y2),则 a·b=x1x2+y1y2=|a||b|cosθ
θ是a,b的夹角,|a|是向量a的模长(即sqrt(x12+y12))
故此,可得出向量夹角的余弦值为: a·b/(|a||b|) ,即为向量的内积除以向量的模长。
python案例如下
import numpy as np
im1=np.array([2,4,6