Ответ 1
Нет, вы не можете, по крайней мере, с текущей версией NumPy. A nan
- специальное значение для массивов с плавающей запятой только.
Есть разговоры о введении специального бита, который позволил бы хранить неплавающие массивы, что на практике соответствовало бы nan
, но пока (2012/10), он говорит только.
В то же время вы можете рассмотреть пакет numpy.ma
: вместо того, чтобы выбирать недопустимое целое число, например -99999, вы можете использовать специальное значение 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)