Ich hatte ein Problem mit Numpy Arrays und ich stolperte darüber, und es verwirrte mich.Python Zahlen auf mysteriöse Weise im Vergleich gerundet
Ich versuche, 2 Teile von Arrays zu vergleichen mit array_equal
np.array_equal(updated_image_values[j][k],np.array(initial_means[i]))
Dies kehrt False
, wenn die Zahlen
[ 0.90980393 0.8392157 0.65098041]
[ 0.90980393 0.8392157 0.65098041]
Oben ist mein Druck der beiden Arrays sind.
Allerdings, wenn ich die einzelnen Elemente drucken scheint eine der ohne
print updated_image_values[j][k][0] #0.909804
print initial_means[i][0] #0.90980393
Dann offensichtlich Grund gerundet zu werden, wenn diese einzelnen Elemente miteinander verglichen werden es False
print updated_image_values[j][k][0]==initial_means[i][0] #False
zurück Kann mir jemand erklären, warum Python macht den Vergleich falsch und ohne ersichtlichen Grund die Zahlen zu runden?
Fließkommazahlen stellen keinen genauen Wert dar. Zwei Schwimmer, die zufällig als gleich zu vergleichen sind, sind ein Zufall, auf den man nicht achten sollte oder auf den man sich verlassen sollte. – jasonharper
Geben Sie eine 'np.set_printoptions (Genauigkeit = 16)' aus und vergleichen Sie die Arrays erneut ;-). – user7138814
'set_printoptions' funktioniert !! – cjds