-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コードです。私はリストとして表される2つのベクトルの間の角度を見つけようとしています。私はこのコードを実行すると、出力は次のとおりです。有効な入力を持つ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を与え、私は型チェックを行っているなど、すべてがいるようですチェックアウト。
パラメータ 'x'を上書きしています。避ける –
そのコードを実行すると何も表示されません。あなたの 'cosine_similarity()'関数を呼び出し、エラーを出すコードを表示してください(おそらく小さなサイズに縮小してください)。参考文献[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) –
どのバージョンのPython? –