-1
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代码。我试图找到两个向量表示为列表的角度。当我运行这段代码,输出为:有效输入python math.acos中的域错误
1.0
Traceback (most recent call last):
File "problem5.py", line 64, in <module>
print(cosine_similarity(reservoir[0][0], reservoir[0][0]))
File "problem5.py", line 41, in cosine_similarity
print(math.acos(x))
ValueError: math domain error
如果我在控制台类型或文件 math.acos(1.0) 它准确地给了我0.1我已经做了类型检查,等等,一切似乎查看。
您正在覆盖参数'x'。避免它 –
运行该代码不会显示任何内容。请显示调用您的'cosine_similarity()'函数的代码(可能缩小为小尺寸)并给出错误。参考[如何创建一个最小,完整和可验证的示例](http://stackoverflow.com/help/mcve)。 –
什么版本的Python? –