Як порівняти два масиви numpy: із прикладами


Ви можете використовувати наступні методи для порівняння значень двох масивів NumPy:

Спосіб 1. Перевірте, чи рівні два масиви NumPy на рівні елемента

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

Спосіб 2. Перевірка рівності двох масивів NumPy на рівні елемента (в межах допуску)

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

Наступні приклади показують, як використовувати кожен метод на практиці.

Приклад 1. Перевірте, чи рівні два масиви NumPy на рівні елемента

У наведеному нижче коді показано, як використовувати функцію array_equal() для перевірки рівності двох масивів NumPy на рівні елемента:

 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

Функція повертає True , оскільки обидва масиви NumPy мають однакову довжину з однаковими значеннями в однакових позиціях.

Однак функція поверне False , якщо два масиви NumPy мають однакові значення, але в різних позиціях:

 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

Приклад 2: Перевірка рівності двох масивів NumPy на рівні елемента (в межах допуску)

Наступний код показує, як використовувати функцію allclose() для перевірки рівності двох масивів NumPy на рівні елемента в межах допустимого значення 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

Функція повертає True , оскільки відповідні елементи в кожному масиві NumPy знаходяться в межах 2 один від одного.

Наприклад, ми бачимо, що елементи в третій і четвертій позиціях кожного масиву різні, але оскільки кожна пара містить 2 значення, функція повертає true.

Однак, якщо ми змінимо аргумент абсолютного допуску (atol) на 1 , тоді функція поверне значення 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

Функція повертає False , оскільки відповідні елементи в третій позиції кожного масиву NumPy не знаходяться на відстані 1 с один від одного.

Примітка . Зверніться до документації NumPy, щоб отримати повне пояснення функцій array_equal і allclose .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в NumPy:

Як перемістити елементи в масиві NumPy
Як підрахувати входження елементів у NumPy
Як розрахувати режим масиву NumPy

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *