Si consideri il seguente script:NaNs confronto uguali in Numpy
import numpy as np
a = np.array([np.nan], dtype=float)
b = np.array([np.nan], dtype=float)
print a == b
a = np.array([np.nan], dtype=object)
b = np.array([np.nan], dtype=object)
print a == b
Sulla mia macchina Questo stampa
[False]
[ True]
Il primo caso è chiaro (as per IEEE-754), ma quello che sta succedendo nel secondo caso ? Perché i due NaNs sono paragonabili?
Python 2.7.3, Numpy 1.6.1 su Darwin.
Nel secondo caso, tutti Nan-oggetti sono uguali. – Daniel
@Daniel: Empiricamente, questo è quello che sembra accadere, ma: (1) qual è il motivo della violazione di IEEE-754? (2) questo è documentato da qualche parte? – NPE
Una semplice possibilità è che questo è ciò che 'list' fa:' x = [numpy.nan]; x == x # >>> Vero'. – Veedrac