Numpy integer nan [duplicate]
Solution 1:
No, you can't, at least with current version of NumPy. A nan
is a special value for float arrays only.
There are talks about introducing a special bit that would allow non-float arrays to store what in practice would correspond to a nan
, but so far (2012/10), it's only talks.
In the meantime, you may want to consider the numpy.ma
package: instead of picking an invalid integer like -99999, you could use the special numpy.ma.masked
value to represent an invalid 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)
Solution 2:
A nan is a floating point only thing, there is no representation of it in the integers, so no :)
Pick an invalid value, like -99999