您的位置:首页 > 编程语言 > Python开发

python距离计算公式

2017-09-09 19:09 169 查看
import math
import numpy as np
from math import sqrt

x = np.array([1,3,2])
y = np.array([-2,1,-1])
# 相似度
def cosDis (vector1,vector2):
num = 0.0
xdenom = 0.0
ydenom = 0.0

for i in range(0,len(vector1)):
xdenom +=  vector1[i]**2
ydenom +=  vector2[i]**2
num += vector1[i]*vector2[i]

return num/(math.sqrt(xdenom)*math.sqrt(ydenom))
a = cosDis(x,y)

print(a)

#
def OSDistance1 (v1,v2):
sq = sum((v1-v2)**2)
dist = math.sqrt(sq)
return dist

b = OSDistance1(x,y)
print(b)

#
def multipl(a,b):
sumofab=0.0

for i in range(len(a)):
temp=a[i]*b[i]
sumofab+=temp
return sumofab

#
def pearson(x,y):
N=len(x)
sumofx=sum(x)
sumofy=sum(y)
sumofxy=multipl(x,y)
sumofxx=multipl(x,x)
sumofyy=multipl(y,y)
upside=sumofxy-sumofx*sumofy/N
downside=sqrt((sumofxx-float(sumofx**2)/N)*(sumofyy-float(sumofy**2)/N))  #此处要转成浮点数保证精度
return upside/downside

c = pearson(x,y)
print(c)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python math