@deion
В numpy есть функция numpy.array_equal()
, которая может использоваться для сравнения двух массивов. Она возвращает True
, если массивы равны и False
в противном случае.
1 2 3 4 5 6 7 |
import numpy as np a = np.array([1, 2, 3]) b = np.array([1, 2, 3]) c = np.array([4, 5, 6]) print(np.array_equal(a, b)) # True print(np.array_equal(a, c)) # False |
Вы также можете сравнивать массивы используя оператор ==
1 2 3 4 5 6 7 |
import numpy as np a = np.array([1, 2, 3]) b = np.array([1, 2, 3]) c = np.array([4, 5, 6]) print((a == b).all()) # True print((a == c).all()) # False |
Если вам нужно сравнивать содержимое массивов по-элементно, вы можете использовать метод numpy.array_equal()
или оператор ==
как показано выше.
@deion
Добавлю, что если массивы имеют разную форму, вы получите ошибку при использовании opertor ==
. Для сравнения массивов с разными формами можно использовать функцию numpy.array_equiv()
. Эта функция возвращает True
, если массивы имеют одинаковое содержимое, даже если их формы различаются.
Пример:
1 2 3 4 5 6 7 8 9 10 11 |
import numpy as np a = np.array([1, 2, 3]) b = np.array([1, 2, 3]) c = np.array([[1, 2, 3], [4, 5, 6]]) print(np.array_equal(a, b)) # True print(np.array_equal(a, c)) # False print(np.array_equiv(a, b)) # True print(np.array_equiv(a, c)) # True |
В этом примере, a
и b
имеют одинаковое содержимое и форму, поэтому оба вызова np.array_equal(a, b)
и np.array_equiv(a, b)
возвращают True
. Однако, a
и c
имеют разные формы, поэтому np.array_equal(a, c)
возвращает False
, но np.array_equiv(a, c)
возвращает True
, потому что их содержимое одинаково.