Ce face math.isnan(), isinf() și isfinite()
isnan(x) este True pentru valoarea „nu este număr” (NaN), isinf(x) pentru plus sau minus infinit, iar isfinite(x) pentru orice număr care nu este nici NaN, nici infinit.
Valorile speciale apar din date lipsă (de exemplu în fișiere CSV prelucrate cu alte biblioteci), din float("nan") sau din operații ca inf - inf.
Parametri
| Parametru | Descriere |
|---|---|
x |
Un număr. |
Ce returnează
True sau False.
Exemple
Exemplul 1: Curățarea unor valori
import math
valori = [3.5, float("nan"), math.inf, -2.0, -math.inf]
for v in valori:
print(v, math.isnan(v), math.isinf(v), math.isfinite(v))
print([v for v in valori if math.isfinite(v)])
Rezultat
3.5 False False True
nan True False False
inf False True False
-2.0 False False True
-inf False True False
[3.5, -2.0]
Greșeli frecvente
- Elimini valorile NaN cu
v != vsauv == float("nan"); a doua variantă nu funcționează niciodată. Foloseștemath.isnan.
Comenzi înrudite
math.pi, e, tau, inf și nan: Constantele matematice ale modulului math: π, e, τ, infinit și „nu este număr”.math.isclose(): Verifică dacă două numere zecimale sunt „suficient de apropiate” pentru a fi considerate egale.float(): Tipul numerelor cu zecimale; float() transformă un text sau un întreg în număr zecimal.