lettura facile

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.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin