なんのことなのか
タイトルの通りです。
>>> import numpy as np >>> bool(np.nan) True >>> np.array([np.nan]).astype(bool) array([ True])
いやまあ、確かにPythonの言語仕様上そうなんですが、釈然としない気も・・・
なんで困るのか
0かそれ以外かをそのままboolとして扱いたい時があります。
返り値がnanになりえる関数を使った後、astypeでboolにすればいいと思っているとハマり得ます。
なんてこった……
nanとか面倒くさいので、タイムマシンがあったら仕様を考えた人に会いに行って、説得すると思います。
いや、これに関してはPythonの言語仕様のせいかもしれませんが……