Spec-Zone.ru › NumPy 1.20

numpy.testing.assert_array_equal

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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.testing.assert_array_equal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API