
Il simbolo nan in Python
In Python, il termine "nan" o "NaN" sta per "Not a Number" ed è utilizzato per rappresentare un valore numerico non valido.
Ad esempio, prova a dividere infinito per infinito
x=float('infinity')
y=float('infinity')
print(x/y)
Python ti restituisce il simbolo "nan" perché l'operazione ∞/∞ non è definita in matematica.
nan
Questo vuol dire che il risultato non è un numero reale valido, è indefinito o non rappresentabile.
Qualsiasi altra operazione tra "nan" e altri valori numerici restituirà sempre "nan" come risultato.
Per assegnare "nan" a una variabile devi utilizzare la funzione float indicando 'nan' tra le parentesi tonde.
x=float('nan')
In alternativa puoi usare una delle funzioni della libreria math per ottenere il valore 'nan'
import math
x = math.nan
oppure della libreria numpy
import numpy as np
x = np.nan
Se provi a sommare x+1, Python restituisce ancora "nan"
x+1
nan
Fai attenzione però a un aspetto, il simbolo 'nan' non è un numero e non è uguale nemmeno a se stesso.
Quindi se provi a verificare se un valore è "nan" con l'operatore di uguaglianza, Python restituisce False
x=float('nan')
print(x==float('nan'))
False
Per confrontare "nan" dovresti utilizzare la funzione isnan() del modulo math
import math
x=float('nan')
print(math.isnan(x))
True
In alternativa, puoi usare anche la funzione isnan() del modulo numpy
import numpy as np
x=float('nan')
print(np.isnan(x))
True
Per concludere, ricorda che NaN è diverso da None in Python.
Il simbolo "nan" è utilizzato per rappresentare un valore numerico non valido. Il simbolo "None", invece, è utilizzato per rappresentare l'assenza di un valore o un valore nullo.