Comparar dos arrays en Python
-
Compare dos arrays en Python usando el método
numpy.array_equal()
-
Compare dos arrays en Python usando el método
numpy.allclose()
-
Compare dos arrays en Python usando el método
numpy.array_equiv()
-
Compare dos arrays en Python usando el operador
==
y el métodonumpy.all()
En este tutorial, analizaremos varios métodos para comparar dos arrays en Python y verificaremos si son iguales o no. Las dos arrays solo serán iguales cuando sus dimensiones y valores sean los mismos. Si las dos arrays tienen los mismos valores, pero su secuencia no es la misma, los Arrays no se considerarán iguales.
Podemos verificar si las dos arrays son iguales o no en Python usando los siguientes métodos:
Compare dos arrays en Python usando el método numpy.array_equal()
numpy.array_equal(a1, a2, equal_nan=False)
toma dos arrays a1
y a2
como entrada y devuelve True
si ambas matrices tienen la misma forma y elementos, y el método devuelve False
en caso contrario . El valor predeterminado del argumento de la palabra clave equal_nan=
es False
y debe establecerse en True
si queremos que el método considere dos valores NaN
como iguales.
El siguiente código de ejemplo demuestra cómo utilizar el método numpy.array_equal()
para comparar dos arrays en Python.
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
print(np.array_equal(a1, a1))
print(np.array_equal(a1, a2))
Producción :
True
False
Compare dos arrays en Python usando el método numpy.allclose()
El método numpy.allclose(a1, a2, rtol=1e-05, atol=1e-08, equal_nan=False)
toma el array a1
y a2
como entrada y devuelve True
si cada elemento de a1
es igual al elemento correspondiente de a2
, o su diferencia está dentro del valor de tolerancia.
El valor de tolerancia se calcula utilizando los argumentos a2
, rtol
y atol
.
atol + rtol * absolute(a2)
El método numpy.allclose()
es útil en los cálculos en los que queremos comprobar si los Arrays finales son iguales a el array esperada o no. Podemos usar el método numpy.allclose()
para comparar dos arrays en Python de la siguiente manera:
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print(np.allclose(a1, a2))
print(np.allclose(a3, a2))
Producción :
False
True
Como se muestra en el código de ejemplo anterior, la diferencia de 0.00001
entre los dos valores se ignora de forma predeterminada. Podemos cambiar los valores de atol
y rtol
para aumentar el valor de tolerancia.
Compare dos arrays en Python usando el método numpy.array_equiv()
El método numpy.array_equiv(a1, a2)
toma el array a1
y a2
como entrada y devuelve True
si la forma y los elementos de ambas matrices son iguales; de lo contrario, devuelve False
.
Podemos pasar ambas matrices al método numpy.array_equiv()
para compararlas en Python. El siguiente código de ejemplo demuestra cómo utilizar el método numpy.array_equal()
para comprobar si las dos arrays son iguales en Python.
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print(np.array_equiv(a1, a2))
print(np.array_equiv(a3, a2))
Producción :
False
False
Compare dos arrays en Python usando el operador ==
y el método numpy.all()
El operador ==
cuando se usa con los Arrays, devuelve el array con la forma equivalente a ambas matrices, el array devuelta contiene True
en un índice si los elementos de ambas matrices son iguales en ese índice y el array de contienen False
en ese índice.
Como queremos comparar las dos arrays en lugar de cada elemento, podemos usar el método numpy.all()
con el operador ==
. El método numpy.all()
devuelve True
si todos los elementos del array de entrada a lo largo del eje dado son True
; de lo contrario, devuelve False
.
True
si ambas matrices están vacías o un array tiene una longitud de 1
. Y también generará un error si la forma de ambas matrices no es la misma; por eso deben preferirse los métodos mencionados anteriormente.El siguiente código de ejemplo demuestra cómo usar el operador ==
y el método numpy.all()
para comparar las dos arrays en Python.
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print((a1 == a2).all())
print((a3 == a2).all())
Producción :
False
False