Як порівняти два масиви 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