Comparar dos arrays en Python

Muhammad Waiz Khan 30 enero 2023
  1. Compare dos arrays en Python usando el método numpy.array_equal()
  2. Compare dos arrays en Python usando el método numpy.allclose()
  3. Compare dos arrays en Python usando el método numpy.array_equiv()
  4. Compare dos arrays en Python usando el operador == y el método numpy.all()
Comparar dos arrays en Python

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.

Nota
Este método devuelve 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