In [1]:
import numpy as np
#numpyはnanを作ってくれる
hoge = np.nan
print(hoge)
普通にnanが出力される.次にNaN
の判定について.
In [2]:
if hoge == np.nan:
print("True")
else:
print("False")
あれっ?ってなる.NaN
を普段扱う,整数とか文字列とかと同じ感覚で扱ってはいけないですね.
ではどのように判定するか.Pythonの挙動として一番簡単な方法は自分と自分を比べる方法である.ほかにはmath
パッケージのisnan
を使う方法もある.前者は戻り値False
がNaN
を意味することに注意.
In [3]:
if hoge == hoge:
print("True")
else:
print("Flase")
In [4]:
import math
hoge2 = np.pi
print(math.isnan(hoge))
print("------")
print(math.isnan(hoge2))
おわりに¶
hoge == hoge
の方法は単純だしわかりやすいが,リストの要素を対象としてhoge[i] == hoge[i]
とかやってしまうと,実行速度が心配になる...