Numpy: Conversion d'entiers nullables

Créé le 28 oct. 2020  ·  3Commentaires  ·  Source: numpy/numpy

Salut,

Récemment, les pandas ont introduit le type entier nullable :
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

Je m'attendrais à ce que numpy convertisse automatiquement ces tableaux en un type flottant et se remplisse avec np.nan. Cependant, pour une raison quelconque, il le convertit en objet :

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

ce qui conduit à des erreurs comme celle-ci

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

renvoie "TypeError : la valeur booléenne de NA est ambiguë"

Est-ce attendu ?

Tous les 3 commentaires

Est-ce attendu ?

Je dirais oui, car les entiers nullables ne sont pas un type NumPy.

Je suis d'accord, c'est essentiellement par conception et signifie que les choses fonctionnent comme prévu. Il n'est pas impossible que NumPy comprenne cela à un moment donné, mais il est peu probable que cela se produise bientôt.

En utilisant le nouveau UInt8 , vous choisissez en un sens que NaN n'est pas vraiment la même chose que NA, et les pandas ont maintenant pd.NA pour rendre cette distinction plus claire.

@ Kreol64 J'ai ouvert pandas-dev/pandas#37460 pour en discuter du côté des pandas

Cette page vous a été utile?
0 / 5 - 0 notes