numpy.testing.assert_array_equal
-
numpy.testing.assert_array_equal(x, y, err_msg='', verbose=True)[source] -
Вызывает AssertionError, если два объекта array_like не равны.
Для двух объектов array_like проверяется, что форма равна и все элементы этих объектов равны (но см. Примечания для специального обработки скаляра). Исключение генерируется при несовпадении формы или конфликтующих значениях. В отличие от стандартного использования в numpy, NaN сравниваются как числа, и исключение не генерируется, если оба объекта имеют NaN в одних и тех же позициях.
Рекомендуется соблюдать обычные предосторожности при проверке равенства с плавающей точкой.
- Параметры
-
-
xarray_like -
Фактический проверяемый объект.
-
yarray_like -
Желаемый, ожидаемый объект.
-
err_msgstr, optional -
Сообщение об ошибке, которое будет выведено в случае сбоя.
-
verbosebool, optional -
Если True, конфликтующие значения добавляются в сообщение об ошибке.
-
- Возбуждает
-
- AssertionError
-
Если фактический и желаемый объекты не равны.
См. также
-
assert_allclose -
Сравнивает два объекта array_like на равенство с желаемой относительной и/или абсолютной точностью.
assert_array_almost_equal_nulp,assert_array_max_ulp,assert_equalПримечания
Когда один из
xиyявляется скаляром, а другой — array_like, функция проверяет, что каждый элемент объекта array_like равен скаляру.Примеры
Первый assert не вызывает исключение:
>>> np.testing.assert_array_equal([1.0,2.33333,np.nan], ... [np.exp(0),2.33333, np.nan])
Assert терпит неудачу из-за числовой неточности с плавающей точкой:
>>> np.testing.assert_array_equal([1.0,np.pi,np.nan], ... [1, np.sqrt(np.pi)**2, np.nan]) Traceback (most recent call last): ... AssertionError: Arrays are not equal Mismatched elements: 1 / 3 (33.3%) Max absolute difference: 4.4408921e-16 Max relative difference: 1.41357986e-16 x: array([1. , 3.141593, nan]) y: array([1. , 3.141593, nan])Вместо этого используйте
assert_allcloseили одну из функций nulp (число значений с плавающей точкой):>>> np.testing.assert_allclose([1.0,np.pi,np.nan], ... [1, np.sqrt(np.pi)**2, np.nan], ... rtol=1e-10, atol=0)
Как упоминалось в разделе «Примечания»,
assert_array_equalимеет специальную обработку для скаляров. Здесь тест проверяет, что каждое значение вxравно 3:>>> x = np.full((2, 5), fill_value=3) >>> np.testing.assert_array_equal(x, 3)
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.testing.assert_array_equal.html