numpy.allclose() en Python

numpy.allclose() La función se usa para encontrar si dos arrays son iguales en cuanto a elementos dentro de una tolerancia. Los valores de tolerancia son positivos, típicamente números muy pequeños. La diferencia relativa (rtol * abs(arr2)) y la diferencia absoluta atol se suman para comparar con la diferencia absoluta entre arr1 y arr2 . Si cualquiera de los arreglos contiene uno o más NaN, se devuelve False. Los infs se tratan como iguales si están en el mismo lugar y tienen el mismo signo en ambas arrays.

Si la siguiente ecuación es True en cuanto a los elementos, entonces allclose devuelve True.
absolute(arr1 - arr2) <= (atol + rtol * absolute(arr2))
Como, la ecuación anterior no es simétrica en arr1 y arr2, entonces, allclose(arr1, arr2) podría ser diferente de allclose(arr2, arr1) en algunos casos raros.

Sintaxis: numpy.allclose(arr1, arr2, rtol, atol, equal_nan=False)

Parámetros:
arr1: [array_like] Ingrese la primera array.
arr2 : [array_like] Ingrese la segunda array.
rtol : [float] El parámetro de tolerancia relativa.
atol : [float] El parámetro de tolerancia absoluta.
equal_nan: [bool] Si comparar NaN como iguales. Si es Verdadero, los NaN en arr1 se considerarán iguales a los NaN en arr2 en la array de salida.

Devuelve: [bool] Devuelve True si las dos arrays son iguales dentro de la tolerancia dada; de lo contrario, devuelve False.

Código #1:

# Python program explaining
# allclose() function
  
import numpy as geek
  
# input arrays
in_arr1 = geek.array([5e5, 1e-7, 4.000004e6])
print ("1st Input array : ", in_arr1) 
  
in_arr2 = geek.array([5.00001e5, 1e-7, 4e6])
print ("2nd Input array : ", in_arr2) 
  
# setting the absolute and relative tolerance
rtol = 1e-05
atol = 1e-08
  
res = geek.allclose(in_arr1, in_arr2, rtol, atol)
print ("Are the two arrays are equal within the tolerance: \t", res)
Producción:

1st Input array :  [  5.00000000e+05   1.00000000e-07   4.00000400e+06]
2nd Input array :  [  5.00001000e+05   1.00000000e-07   4.00000000e+06]
Are the two arrays are equal within the tolerance:      True

 
Código #2:

# Python program explaining
# allclose() function
   
import numpy as geek
  
# input arrays
in_arr1 = geek.array([5e5, 1e-7, 4.000004e6])
print ("1st Input array : ", in_arr1) 
  
in_arr2 = geek.array([5.00001e5, 1e-7, 4e6])
print ("2nd Input array : ", in_arr2) 
  
# setting the absolute and relative tolerance
rtol = 1e-06
atol = 1e-09
  
res = geek.allclose(in_arr1, in_arr2, rtol, atol)
print ("Are the two arrays are equal within the tolerance: \t", res)
Producción:

1st Input array :  [5000000.0, 1e-07, 40000004.0]
2nd Input array :  [5000001.0, 1e-07, 40000000.0]
Are the two arrays are equal within the tolerance:      True

 
Código #3:

# Python program explaining
# allclose() function
   
import numpy as geek
  
# input arrays
in_arr1 = geek.array([5e5, 1e-7, geek.nan])
print ("1st Input array : ", in_arr1) 
  
in_arr2 = geek.array([5e5, 1e-7, geek.nan])
print ("2nd Input array : ", in_arr2) 
  
# setting the absolute and relative tolerance
rtol = 1e-06
atol = 1e-09
  
res = geek.allclose(in_arr1, in_arr2, rtol, atol)
print ("Are the two arrays are equal within the tolerance: \t", res)
Producción:

1st Input array :  [500000.0, 1e-07, nan]
2nd Input array :  [500000.0, 1e-07, nan]
Are the two arrays are equal within the tolerance:      False

 
Código #4:

# Python program explaining
# allclose() function
   
import numpy as geek
  
# input arrays
in_arr1 = geek.array([5e5, 1e-7, geek.nan])
print ("1st Input array : ", in_arr1) 
  
in_arr2 = geek.array([5e5, 1e-7, geek.nan])
print ("2nd Input array : ", in_arr2) 
  
# setting the absolute and relative tolerance
rtol = 1e-06
atol = 1e-09
  
res = geek.allclose(in_arr1, in_arr2, rtol, atol, 
                                equal_nan = True)
  
print ("Are the two arrays are equal within the tolerance: \t", res)
Producción:

1st Input array :  [500000.0, 1e-07, nan]
2nd Input array :  [500000.0, 1e-07, nan]
Are the two arrays are equal within the tolerance:      True

Publicación traducida automáticamente

Artículo escrito por jana_sayantan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *