NaNを整数のNumpy配列に格納する方法はありますか?私は得る:
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
パッケージ:-99999のような無効な整数を選択する代わりに、特別なnumpy.ma.masked
valueは無効な値を表します。
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)
Nanは浮動小数点のみのものであり、整数では表現されないため、no :)
-99999などの無効な値を選択してください