Numpy: Преобразование целых чисел, допускающих значение NULL

Созданный на 28 окт. 2020  ·  3Комментарии  ·  Источник: numpy/numpy

Привет,

Недавно pandas представил целочисленный тип dtype, допускающий значение NULL:
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

Я ожидал, что numpy автоматически преобразует такие массивы в тип с плавающей запятой и заполнит np.nan. Однако по какой-то причине он преобразует его в объект:

pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values.dtype

что приводит к таким ошибкам

np.nanmax(pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values)

возвращает «TypeError: логическое значение NA неоднозначно»

Это ожидается?

Все 3 Комментарий

Это ожидается?

Я бы сказал, что да, поскольку целые числа, допускающие значение NULL, не относятся к типу NumPy.

Я согласен, это в основном задумано и означает, что все работает так, как ожидалось. Не исключено, что NumPy может понять это в какой-то момент, но вряд ли это произойдет в ближайшее время.

Используя новый UInt8 , вы в некотором смысле выбираете, что NaN действительно не то же самое, что NA, и у панд есть pd.NA чтобы сделать это различие более ясным.

@ Kreol64 Я открыл pandas-dev / pandas # 37460, чтобы обсудить это на стороне pandas

Была ли эта страница полезной?
0 / 5 - 0 рейтинги