Jak porównać dwie tablice numpy: z przykładami


Do porównania wartości dwóch tablic NumPy możesz użyć następujących metod:

Metoda 1: Sprawdź, czy dwie tablice NumPy są równe na poziomie elementu

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

Metoda 2: Sprawdź, czy dwie tablice NumPy są równe na poziomie elementu (w ramach tolerancji)

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

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Sprawdź, czy dwie tablice NumPy są równe na poziomie elementu

Poniższy kod pokazuje, jak używać funkcji array_equal() do sprawdzania, czy dwie tablice NumPy są równe na poziomie elementu:

 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

Funkcja zwraca True , ponieważ obie tablice NumPy mają tę samą długość i te same wartości w tych samych pozycjach.

Jednakże funkcja zwróci False jeśli dwie tablice NumPy mają te same wartości, ale na różnych pozycjach:

 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

Przykład 2: Sprawdź, czy dwie tablice NumPy są równe na poziomie elementu (w granicach tolerancji)

Poniższy kod pokazuje, jak używać funkcji allclose() do sprawdzania, czy dwie tablice NumPy są równe na poziomie elementu w zakresie wartości tolerancji wynoszącej 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

Funkcja zwraca True , ponieważ pasujące elementy pomiędzy każdą tablicą NumPy znajdują się w odległości nie większej niż 2 od siebie.

Na przykład widzimy, że elementy na trzeciej i czwartej pozycji każdej tablicy są różne, ale ponieważ każda para jest oddzielona o 2 wartości, funkcja zwraca wartość true.

Jeśli jednak zmienimy argument tolerancji bezwzględnej (atol) na 1 , wówczas funkcja zwróci 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

Funkcja zwraca False , ponieważ odpowiednie elementy na trzeciej pozycji każdej tablicy NumPy nie są od siebie oddalone o 1.

Uwaga : pełne wyjaśnienie funkcji array_equal i allclose znajdziesz w dokumentacji NumPy.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w NumPy:

Jak przenosić elementy w tablicy NumPy
Jak policzyć wystąpienia elementów w NumPy
Jak obliczyć tryb tablicy NumPy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *