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