2017-04-26 4 views
-1

Ich weiß, ich nan in Python bekommen kann vonPython - wie nan bekommen

>>>float("nan") 
nan 

Aber gibt es eine andere Möglichkeit, es ohne „nan“ zu bekommen? Wie in Javascript kann ich tun

>"something"-1 
NaN 

Kann ich etwas Similar in Python tun? Danke.

+0

Sie erhalten 'TypeError',' nan' erhalten werden kann Unendlichkeiten durch Teilen (zB 'float ('inf)' und 'float (' inf)') –

+0

Wenn Sie Zugriff auf NumPy haben, können Sie könnte 'np.int16 (1)/0 - np.int16 (1)/0' machen oder einfach' numpy.nan' verwenden, aber das macht weniger Spaß, oder? – ForceBru

+0

[* "Es sollte eine - und vorzugsweise nur eine - offensichtliche Möglichkeit geben." *] (Https://www.python.org/dev/peps/pep-0020/) Warum brauchst du * ein anderer Weg, um NaN zu bekommen? – jonrsharpe

Antwort

1

Wenn Sie Python verwenden 3.5 oder höher, NaN ist als die Konstante math.nan:

import math 
print(math.nan) # nan 

In früheren Versionen Sie NaN nur aus Zeichenfolge durch Gießen erhalten können:

print(float('NaN')) # nan 

Oder indem Sie versuchen, merkwürdige Operationen an der Unendlichkeit auszuführen:

print(float('Inf') - float('Inf')) # nan 

Sie können auch die Bibliothek numpy verwenden. Numpy ist jedoch eine große Bibliothek und Sie sollten sie nicht nur dafür verwenden.

import numpy as np 
print(np.nan) # nan 
+2

'numpy' ist eine große Bibliothek, aber Sie könnten natürlich einfach selbst Nan importieren. 'aus numpy import nan'. – zephyr