Как сравнить два массива 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *