Заменить определенное значение на np.nan или NA или nan в Numpy в python - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть пустой массив, который содержит данные, но я хочу заменить некоторые определенные значения на NA.Я не хочу иметь дело с замаскированными данными, поэтому я не замаскирую их.Возможно ли это?

Мои данные представляют собой массив с типом данных uint16:

array([[[1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1],
        ...,
        [1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1]]], dtype=uint16)

Я хочу заменить эти "1" на значения NA, я использовал код ниже,но я получаю эту ошибку:

aa [aa == 1] = np.nan
ValueError: cannot convert float NaN to integer

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вы пытаетесь поместить значения NaN в массив типа uint16, который не знает значения NaN.Попробуйте то же самое с float32, и оно будет работать.

0 голосов
/ 25 февраля 2019

type(np.nan) возвращает <class 'float'>.

Ваш массив должен иметь тип float.

См .: Numpy integer nan

...