En Python, tapez ๐โ๐ฅโ๐จโ๐โ๐ญโ ร ๐งโ๐โ๐งโ . ๐งโ๐โ๐งโ signifie ยซ pas un nombre ยป et est dรฉfini par la norme ร virgule flottante IEEE 754.
- ๐งโ๐โ๐งโ est une valeur ๐โ๐ฅโ๐จโ๐โ๐ญโ en Python
 - Crรฉer ๐งโ๐โ๐งโ : ๐โ๐ฅโ๐จโ๐โ๐ญโ(‘๐งโ๐โ๐งโ’) , ๐ฆโ๐โ๐ญโ๐กโ.๐งโ๐โ๐งโ , ๐งโ๐ฉโ.๐งโ๐โ๐งโ
 - Vรฉrifiez si une valeur est ๐งโ๐โ๐งโ : ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() , ๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ()
 - Comportement des opรฉrateurs de comparaison ( < , > , == , != ) avec ๐งโ๐โ๐งโ
 - Check ๐งโ๐โ๐งโ in the ๐ขโ๐โ statement
 - Remove and replace ๐งโ๐โ๐งโ in a list
 - Operations with ๐งโ๐โ๐งโ
 
Dans l’exemple de code de cet article, math, pandas et NumPy sont importรฉs comme suit.
import math import numpy as np import pandas as pd 
Notez que N๐จโ๐งโ๐โ , qui reprรฉsente l’absence d’une valeur, est diffรฉrent de ๐งโ๐โ๐งโ . Pour plus d’informations sur N๐จโ๐งโ๐โ , consultez l’article suivant.
Consultez les articles suivants sur la faรงon de supprimer et de remplacer ๐งโ๐โ๐งโ dans NumPy et pandas.
- NumPy : Supprimer NaN (np.nan) d’un tableau
 - NumPy : remplacez NaN (np.nan) en utilisant np.nan_to_num() et np.isnan()
 - pandas : supprime NaN (valeurs manquantes) avec dropna()
 - pandas : remplacez NaN (valeurs manquantes) par fillna()
 
๐งโ๐โ๐งโ est une valeur ๐โ๐ฅโ๐จโ๐โ๐ญโ en Python
En Python, le type ๐โ๐ฅโ๐จโ๐โ๐ญโ inclut ๐งโ๐โ๐งโ , qui peut รชtre crรฉรฉ ร l’aide de ๐โ๐ฅโ๐จโ๐โ๐ญโ(‘๐งโ๐โ๐งโ’) . D’autres mรฉthodes de crรฉation seront dรฉcrites plus tard.
print(float('nan')) # nan print(type(float('nan'))) # <class 'float'> 
Par exemple, lors de la lecture d’un fichier CSV avec des valeurs manquantes dans NumPy ou Pandas, ๐งโ๐โ๐งโ est gรฉnรฉrรฉ pour reprรฉsenter ces valeurs. Dans Pandas, cela est notรฉ comme N๐โN , mais cela reprรฉsente รฉgalement la valeur manquante.
- NumPy : lecture et รฉcriture de fichiers CSV (np.loadtxt, np.genfromtxt, np.savetxt)
 - pandas : lire un fichier CSV dans un DataFrame avec read_csv()
 
a = np.genfromtxt('data/src/sample_nan.csv', delimiter=',') print(a) # [[11. 12. nan 14.] # [21. nan nan 24.] # [31. 32. 33. 34.]] df = pd.read_csv('data/src/sample_pandas_normal_nan.csv')[:3] print(df) # name age state point other # 0 Alice 24.0 NY NaN NaN # 1 NaN NaN NaN NaN NaN # 2 Charlie NaN CA NaN NaN 
Crรฉer ๐งโ๐โ๐งโ : ๐โ๐ฅโ๐จโ๐โ๐ญโ(‘๐งโ๐โ๐งโ’) , ๐ฆโ๐โ๐ญโ๐กโ.๐งโ๐โ๐งโ , ๐งโ๐ฉโ.๐งโ๐โ๐งโ
Comme dรฉcrit ci-dessus, vous pouvez crรฉer ๐งโ๐โ๐งโ avec ๐โ๐ฅโ๐จโ๐โ๐ญโ(‘๐งโ๐โ๐งโ’) . Il n’est pas sensible ร la casse, vous pouvez donc utiliser ‘N๐โN’ et ‘NAN’ .
print(float('nan')) # nan print(float('NaN')) # nan print(float('NAN')) # nan 
De plus, ๐งโ๐โ๐งโ est dรฉfini dans ๐ฆโ๐โ๐ญโ๐กโ (bibliothรจque standard) et NumPy ; N๐โN et NAN sont tous deux dรฉfinis comme des alias dans NumPy.
- math.nan โ Fonctions mathรฉmatiques โ Documentation Python 3.11.3
 - Constantes – numpy.nan โ Manuel NumPy v1.24
 
print(math.nan) # nan print(np.nan) # nan print(np.NaN) # nan print(np.NAN) # nan 
Ils sont รฉquivalents quelle que soit la mรฉthode utilisรฉe pour la crรฉation.
Vรฉrifiez si une valeur est ๐งโ๐โ๐งโ : ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() , ๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ()
Vous pouvez vรฉrifier si une valeur est ๐งโ๐โ๐งโ ou non avec ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() .
print(math.isnan(float('nan'))) # True print(math.isnan(math.nan)) # True print(math.isnan(np.nan)) # True 
๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() est รฉgalement fourni.
En plus des valeurs scalaires, des objets de type tableau, tels que des listes et des tableaux NumPy ( ๐งโ๐โ๐โ๐ซโ๐ซโ๐โ๐ฒโ ), peuvent รฉgalement รชtre passรฉs comme arguments.
print(np.isnan(float('nan'))) # True print(np.isnan([float('nan'), math.nan, np.nan, 0])) # [ True True True False] 
๐ฉโ๐โ๐งโ๐โ๐โ๐ฌโ.D๐โ๐ญโ๐โF๐ซโ๐โ๐ฆโ๐โ et S๐โ๐ซโ๐ขโ๐โ๐ฌโ ont la mรฉthode ๐ขโ๐ฌโ๐งโ๐โ() et son alias ๐ขโ๐ฌโ๐งโ๐ฎโ๐ฅโ๐ฅโ() , qui renvoient T๐ซโ๐ฎโ๐โ pour ๐งโ๐โ๐งโ et N๐จโ๐งโ๐โ .
- Valeurs manquantes dans pandas (nan, None, pd.NA)
 - pandas : dรฉtecter et compter les NaN (valeurs manquantes) avec isnull(), isna()
 
Une erreur est gรฉnรฉrรฉe si N๐จโ๐งโ๐โ est spรฉcifiรฉe pour ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() ou ๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ () .
Comportement des opรฉrateurs de comparaison ( < , > , == , != ) avec ๐งโ๐โ๐งโ
Lors de la comparaison avec ๐งโ๐โ๐งโ , < , > , == , <= et >= renvoient toujours F๐โ๐ฅโ๐ฌโ๐โ et != renvoie toujours T๐ซโ๐ฎโ๐โ .
print(10 < float('nan')) # False print(10 > float('nan')) # False print(10 == float('nan')) # False print(10 != float('nan')) # True 
Il en va de mรชme pour les comparaisons ๐งโ๐โ๐งโ et ๐งโ๐โ๐งโ . Notez que == et != donnent des rรฉsultats contre-intuitifs.
Toute comparaison ordonnรฉe d’un nombre avec une valeur qui n’est pas un nombre est fausse. Une implication contre-intuitive est que les valeurs qui ne sont pas un nombre ne sont pas รฉgales ร elles-mรชmes. Par exemple, si x = float(‘NaN’), 3 < x, x < 3 et x == x sont tous faux, tandis que x != x est vrai. Ce comportement est conforme ร la norme IEEE 754. 6. Expressions – Comparaisons de valeurs โ Documentation Python 3.11.3
print(float('nan') == float('nan')) # False print(float('nan') != float('nan')) # True 
Pour vรฉrifier si une valeur est ๐งโ๐โ๐งโ , utilisez ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() et ๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() au lieu de == .
Vรฉrifiez ๐งโ๐โ๐งโ dans la dรฉclaration ๐ขโ๐โ
En Python, les objets autres que T๐ซโ๐ฎโ๐โ et F๐โ๐ฅโ๐ฌโ๐โ sont รฉgalement รฉvaluรฉs comme vrais ou faux dans les conditions des instructions ๐ขโ๐โ . Par exemple, la chaรฎne vide ย ยป ou le nombre 0 est considรฉrรฉ comme faux, et les autres chaรฎnes ou nombres sont considรฉrรฉs comme vrais.
Comme vous pouvez le voir avec ๐โ๐จโ๐จโ๐ฅโ() , ๐งโ๐โ๐งโ est รฉvaluรฉ comme T๐ซโ๐ฎโ๐โ .
print(bool(float('nan'))) # True 
Utilisez ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() ou ๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() .
x = float('nan') if math.isnan(x): print('This is nan.') else: print('This is not nan.') # This is nan. 
x = 100 if math.isnan(x): print('This is nan.') else: print('This is not nan.') # This is not nan. 
Supprimer et remplacer ๐งโ๐โ๐งโ dans une liste
Si vous souhaitez supprimer ou remplacer ๐งโ๐โ๐งโ dans une liste, utilisez des comprรฉhensions de liste, des expressions conditionnelles (opรฉrateurs ternaires) et ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() , ๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() .
l = [float('nan'), 0, 1, 2] print(l) # [nan, 0, 1, 2] print([x for x in l if not math.isnan(x)]) # [0, 1, 2] print([-100 if math.isnan(x) else x for x in l]) # [-100, 0, 1, 2] 
Utilisez simplement ๐ฆโ๐โ๐ญโ๐กโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() et ๐งโ๐ฉโ.๐ขโ๐ฌโ๐งโ๐โ๐งโ() pour vรฉrifier, et le concept est le mรชme que dans les autres cas de suppression et de remplacement de valeurs. Voir l’article suivant pour plus de dรฉtails.
Consultez les articles suivants sur la faรงon de supprimer et de remplacer ๐งโ๐โ๐งโ dans NumPy et pandas.
- NumPy : Supprimer NaN (np.nan) d’un tableau
 - NumPy : remplacez NaN (np.nan) en utilisant np.nan_to_num() et np.isnan()
 - pandas : supprime NaN (valeurs manquantes) avec dropna()
 - pandas : remplacez NaN (valeurs manquantes) par fillna()
 
Opรฉrations avec ๐งโ๐โ๐งโ
Les opรฉrations telles que + , – , * , / et ** avec ๐งโ๐โ๐งโ donnent ๐งโ๐โ๐งโ .
print(float('nan') + 100) # nan print(float('nan') - 100) # nan print(float('nan') - 100) # nan print(float('nan') / 100) # nan print(float('nan') ** 100) # nan 
