Din cauza reprezentării numerelor în virgulă mobilă conform standardului IEEE 754, expresii precum 0.1 + 0.2 == 0.3 returnează fals (deoarece rezultatul real hardware este 0.30000000000000004). Pentru a evita erorile subtile în teste științifice:
np.isclose(): Compară element cu element dacăabs(a - b) <= atol + rtol * abs(b).np.allclose(): Returnează un singur booleanTruedacă toate elementele sunt egale în limitele de toleranță.
Exemplu: Verificarea sigură a egalității matricelor de probabilitate
import numpy as np
a = np.array([0.1 + 0.2, 1.0])
b = np.array([0.3, 1.0])
# Comparația directă == eșuează pe primul element:
print("Egalitate directă ==:", a == b)
# Comparația sigură cu toleranță matematică:
print("allclose:", np.allclose(a, b))
Întrebări & Exemple de Cod:
Comparații Sigure în Virgulă Mobilă cu isclose și allcloseAi o nelămurire despre utilizarea comenzii
Comparații Sigure în Virgulă Mobilă cu isclose și allclosesau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.