nan同士の同値性比較はFalseになる

 nanをイコールで比較しようとしてもうまくいきません。nanはなにと比較しても(自分同士の比較でも)Falseになるような性質を持っているからです。
>>> import numpy as np
>>> np.nan == np.nan
False
 pythonに限らず、おそらく大半のプログラミング言語で同様の仕様のはずです。
 細かい話はここなどに載っています。
 だからisnanなんて関数を用意している、ということですね。
 x == np.nanみたいなものを書くとハマるので注意が必要です。
 この関係で、numpy配列で比較を行う場合は工夫が必要になります。
numpyでnanを含む配列の同値性をちゃんと計算する - 静かなる名辞
 nanは厄介なので、いろいろ気をつける必要があるということですね。