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)
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)
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)
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)
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