Numpyの整数値 nan

Numpyの整数配列にNaNを格納する方法はありますか? 私は得る。

a=np.array([1],dtype=long)
a[0]=np.nan

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot convert float NaN to integer
ソリューション

いいえ、少なくとも現在の NumPy のバージョンではできません。nan` は、float 配列のための特別な値で、 only です。

実際には nan に相当する値を浮動小数点数でない配列に格納できるようにするための特別なビットを導入するという話もありますが、今のところ(2012/10)、話だけです。

一方、numpy.maパッケージを検討するとよいでしょう。-999999のような無効な整数を選ぶ代わりに、無効な値を表す特別な値 numpy.ma.masked を使用することができるのです。

a = np.ma.array([1,2,3,4,5], dtype=int)
a[1] = np.ma.masked
masked_array(data = [1 -- 3 4 5],
             mask = [False  True False False False],
       fill_value = 999999)
解説 (4)

ナンは浮動小数点数だけのもので、整数では表現できないので、ダメなんです :)

無効な値を選んでください。

解説 (2)