Como comparar dois arrays numpy: com exemplos


Você pode usar os seguintes métodos para comparar os valores de duas matrizes NumPy:

Método 1: teste se duas matrizes NumPy são iguais no nível do elemento

 #test if array A and array B are element-wise equal
n.p. array_equal (A,B)

Método 2: teste se duas matrizes NumPy são iguais no nível do elemento (dentro de uma tolerância)

 #test if array A and array B are element-wise equal (within absolute tolerance of 2)
n.p. allclose (A, B, atol= 2 )

Os exemplos a seguir mostram como usar cada método na prática.

Exemplo 1: teste se duas matrizes NumPy são iguais no nível do elemento

O código a seguir mostra como usar a função array_equal() para testar se duas matrizes NumPy são iguais no nível do elemento:

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 5, 7, 10])

#test if arrays are element-wise equal
n.p. array_equal (A,B)

True

A função retorna True porque ambas as matrizes NumPy têm o mesmo comprimento com os mesmos valores nas mesmas posições.

No entanto, a função retornará False se os dois arrays NumPy tiverem os mesmos valores, mas em posições diferentes:

 import numpy as np

#create two NumPy arrays with same values but in different positions
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 5, 10])

#test if arrays are element-wise equal
n.p. array_equal (A,B)

False

Exemplo 2: teste se duas matrizes NumPy são iguais no nível do elemento (dentro da tolerância)

O código a seguir mostra como usar a função allclose() para testar se duas matrizes NumPy são iguais no nível do elemento dentro de um valor de tolerância de 2 :

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 2)
n.p. allclose (A, B, atol= 2 )

True

A função retorna True , pois os elementos correspondentes entre cada matriz NumPy estão todos dentro de 2 um do outro.

Por exemplo, vemos que os elementos na terceira e quarta posições de cada array são diferentes, mas como cada par está separado por 2 valores, a função retorna verdadeiro.

No entanto, se alterarmos o argumento da tolerância absoluta (atol) para 1 , a função retornará False :

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 1)
n.p. allclose (A, B, atol= 1 )

False

A função retorna False , pois os elementos correspondentes na terceira posição de cada array NumPy não estão a 1s de distância um do outro.

Nota : Consulte a documentação do NumPy para uma explicação completa das funções array_equal e allclose .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns no NumPy:

Como mover elementos em um array NumPy
Como contar ocorrências de elementos em NumPy
Como calcular o modo do array NumPy

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *