Compare duas arrays em Python
-
Compare duas arrays em Python usando o método
numpy.array_equal() -
Compare duas arrays em Python usando o método
numpy.allclose() -
Compare duas arrays em Python usando o método
numpy.array_equiv() -
Compare duas arrays em Python usando o operador
==e o métodonumpy.all()
Neste tutorial, examinaremos vários métodos para comparar dois arrays em Python e verificar se eles são iguais ou não. As duas arrays só serão iguais quando suas dimensões e valores forem iguais. Se as duas arrays tiverem os mesmos valores, mas sua sequência não for a mesma, as arrays não serão consideradas iguais.
Podemos verificar se as duas arrays são iguais ou não em Python usando os seguintes métodos:
Compare duas arrays em Python usando o método numpy.array_equal()
O numpy.array_equal(a1, a2, equal_nan=False) leva dois arrays a1 e a2 como entrada e retorna True se ambos os arrays têm a mesma forma e elementos, e o método retorna False caso contrário . O valor padrão do argumento de palavra-chave equal_nan= é False e deve ser definido como True se quisermos que o método considere dois valores NaN como iguais.
O código de exemplo a seguir demonstra como usar o método numpy.array_equal() para comparar dois arrays em 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))
Resultado:
True
False
Compare duas arrays em Python usando o método numpy.allclose()
O método numpy.allclose(a1, a2, rtol=1e-05, atol=1e-08, equal_nan=False) usa a array a1 e a2 como entrada e retorna True se cada elemento de a1 é igual ao elemento correspondente de a2, ou sua diferença está dentro do valor de tolerância.
O valor da tolerância é calculado usando os argumentos a2, rtol e atol.
atol + rtol * absolute(a2)
O método numpy.allclose() é útil em cálculos onde queremos verificar se os arrays finais são iguais ao array esperado ou não. Podemos usar o método numpy.allclose() para comparar dois arrays em Python da seguinte maneira:
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))
Resultado:
False
True
Conforme mostrado no código de exemplo acima, a diferença de 0.00001 entre os dois valores é ignorada por padrão. Podemos alterar os valores de atol e rtol para aumentar o valor de tolerância.
Compare duas arrays em Python usando o método numpy.array_equiv()
O método numpy.array_equiv(a1, a2) leva o array a1 e a2 como entrada e retorna True se a forma e os elementos dos arrays forem iguais; caso contrário, retorna False.
Podemos passar os dois arrays para o método numpy.array_equiv() para compará-los em Python. O código de exemplo a seguir demonstra como usar o método numpy.array_equal() para verificar se os dois arrays são iguais em 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))
Resultado:
False
False
Compare duas arrays em Python usando o operador == e o método numpy.all()
O operador ==, quando usado com as arrays, retorna a matriz com a forma equivalente a ambas as arrays, a matriz retornada contém True em um índice se os elementos de ambas as arrays forem iguais nesse índice, e a matriz será, caso contrário contêm False nesse índice.
Como queremos comparar as duas arrays em vez de cada elemento, podemos usar o método numpy.all() com o operador ==. O método numpy.all() retorna True se todos os elementos do array de entrada ao longo do eixo fornecido são True; caso contrário, retorna False.
True se ambas as arrays estão vazias ou un array tem um comprimento de 1. E também gerará um erro se a forma de ambas as arrays não for a mesma; é por isso que os métodos mencionados acima devem ser preferidos.O código de exemplo a seguir demonstra como usar o operador == e o método numpy.all() para comparar os dois arrays em 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())
Resultado:
False
False