余弦距离包括半径 - 特定于python

时间:2014-01-23 20:59:20

标签: python r scipy cosine

在R中,我们在Geosphere包中有一个函数distCosine,here

我是最新的;我希望在Python中找到类似的功能,但我能找到的只是SciPy的实现here。这不包括半径。

这个R函数是否有基于Python的工作?另外我找到一些工作写出一个myself

1 个答案:

答案 0 :(得分:2)

你可以看到R distCosine函数的源代码......只需在python中编写一个:

from math import acos, sin, cos, pi

def distCosine(p1, p2, r=6378137):
    p1 = [p * pi / 180 for p in p1]
    p2 = [p * pi / 180 for p in p2]

    out = acos(sin(p1[1]) * sin(p2[1]) +\
               cos(p1[1]) * cos(p2[1]) *\
               cos(p1[0] - p2[0])) * r
    return out

distCosine([0, 0], [90, 90])
#  10018754.171394622

您可能想要添加一些错误检查排序,但这适用于R包提供的示例...