def dot(x, y):
return sum([ x[i]*y[i] for i in range(1,10)])
def magnitude(x):
return math.sqrt(sum([x[i]*x[i] for i in range(1,10)]))
def cosine_similarity(x, y):
x = dot(x, y) / (magnitude(x)*magnitude(y))
print(x)
print(math.acos(x))
return math.acos(x) / math.pi
这是我的python代码。我试图找出两个向量之间的夹角。运行此代码时,输出为:
^{pr2}$如果我在控制台或文件中键入 数学.acos(1.0) 准确地说是0。我已经做了类型检查等,一切似乎都检查出来了。在
你会遇到舍入问题。^由于浮点舍入错误,{}可以采用
1.0000000000000002
这样的值,因此它会触发一个错误。您可以将math.acos
替换为numpy.acos
,以静默地观察追加的内容。在相关问题 更多 >
编程相关推荐