On 2014-10-30, Christopher Arndt wrote:
> Am 30.10.2014 um 14:19 schrieb Bernd Nawothnig:
>> np.float64(-57.9) == float('nan')
>> True
>
> Ich kann deine Ergebnisse mit Python 3.4.2 und Numpy 1.9.0 nicht
> reproduzieren (Linux x86_64).
Dieselbe Architektur, strange. numpy 1.9.0 verwende ich auch, Python
ist die Version von Ubuntu 14.04, also 3.4.0 (keine Ahnung, warum die
das nicht für nötig halten, zu aktualisieren).
> Welche Versionen, OS und Architektur benutzt du?
#v+
bernd@bernd:~$ uname -a
Linux bernd 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC
2014 x86_64 x86_64 x86_64 GNU/Linux
#v-
Numpy habe ich aus den Quellen lokal gebaut (gcc 4.8.2), allerdings mit
Compilerflag -ffast-math. Klar ändern sich dadurch die Ergebnisse
etwas (sollten genauer sein, als IEEE vorschreibt), aber deswegen
können doch nicht beliebige Gleitkommawerte == NaN sein, oder?
Dasselbe tritt auch auf, wenn ich np.NaN statt float('nan') verwende.
Witzigerweise funktioniert np.isnan zwar auf arrays, aber nicht auf
Einzelwerten:
#v+
Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> a = np.array([1.7, float('nan'), 37.9], np.float64)
>>> a
array([ 1.7, nan, 37.9])
>>> np.isnan(a)
array([False, True, False], dtype=bool)
>>> np.isnan(np.NaN)
False
>>> np.isnan(float('nan'))
False
>>>
#v-
Bernd
--
no time toulouse