Как сравнить два массива NumPy (с примерами)


Вы можете использовать следующие методы для сравнения значений двух массивов NumPy:

Метод 1: проверьте, равны ли два массива NumPy по элементам

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

Метод 2: проверьте, равны ли два массива NumPy по элементам (в пределах допуска)

#test if array A and array B are element-wise equal (within absolute tolerance of 2)
np.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
np.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
np.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)
np.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)
np.allclose (A, B, atol= 1 )

False

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

Примечание.Обратитесь к документации NumPy, чтобы найти полное объяснение функций array_equal и allclose .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в NumPy:

Как сдвинуть элементы в массиве NumPy
Как подсчитать количество вхождений элементов в NumPy
Как рассчитать режим массива NumPy

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.