Numpy配列に問題があり、私はそれを見つけて混乱しました。Python数字が不思議に丸められています
私は数字が上
[ 0.90980393 0.8392157 0.65098041]
[ 0.90980393 0.8392157 0.65098041]
は、2つの配列の私のプリントであるとき、これはFalse
を返してarray_equal
np.array_equal(updated_image_values[j][k],np.array(initial_means[i]))
を使って、配列の2部を比較しようとしています。
しかし、私は1つの理由はない
print updated_image_values[j][k][0] #0.909804
print initial_means[i][0] #0.90980393
のための丸められているように見える個々の要素を印刷するときに、これらの個々の要素を比較したとき、そして、明らかにそれはFalse
print updated_image_values[j][k][0]==initial_means[i][0] #False
返し誰もが理由を説明することができますPythonは比較を間違っていますし、数字を丸めている明白な理由もありません。
浮動小数点数は、正確な値を表しているわけではありません。同じように比較される2つの浮動小数点は、偶然であり、テストする必要があるものではありません。 – jasonharper
'np.set_printoptions(precision = 16)'を発行し、配列を再度比較します;-)。 – user7138814
'set_printoptions'が動作します! – cjds