Spec-Zone.ru › NumPy 2.0

numpy.testing.assert_allclose

testing.assert_allclose(actual, desired, rtol=1e-07, atol=0, equal_nan=True, err_msg='', verbose=True, *, strict=False)[source]

Вызывает AssertionError, если два объекта не равны с заданной точностью.

Для двух объектов array_like проверяет, что их формы и все элементы равны (но см. заметки по специальной обработке скаляра). Возникает исключение, если формы не совпадают или значения конфликтуют. В отличие от стандартного использования в numpy, NaNs сравниваются как числа, исключение не возникает, если в обоих объектах есть NaNs в одинаковых позициях.

Тест эквивалентен allclose(actual, desired, rtol, atol) (обратите внимание, что allclose имеет другие значения по умолчанию). Он сравнивает разницу между actual и desired с atol + rtol * abs(desired).

Добавлена в версии 1.5.0.

Параметры:
actualarray_like

Полученный массив.

desiredarray_like

Желаемый массив.

rtolfloat, необязательно

Относительная погрешность.

atolfloat, необязательно

Абсолютная погрешность.

equal_nanbool, необязательно.

Если True, NaNs будут считаться равными.

err_msgstr, необязательно

Сообщение об ошибке, которое будет выведено в случае неудачи.

verbosebool, необязательно

Если True, конфликтные значения добавляются в сообщение об ошибке.

strictbool, необязательно

Если True, поднимается AssertionError, когда либо форма, либо тип данных аргументов не совпадают. Специальная обработка скаляров, описанная в разделе «Примечания», отключается.

Добавлена в версии 2.0.0.

Возбуждает:
AssertionError

Если actual и desired не равны с указанной точностью.

См. также

assert_array_almost_equal_nulp, assert_array_max_ulp

Примечания

Когда один из actual и desired является скаляром, а другой - array_like, функция выполняет сравнение так, как если бы скаляр был расширен до формы массива. Это поведение можно отключить с помощью параметра strict.

Примеры

>>> x = [1e-5, 1e-3, 1e-1]
>>> y = np.arccos(np.cos(x))
>>> np.testing.assert_allclose(x, y, rtol=1e-5, atol=0)

Как упоминалось в разделе «Примечания», assert_allclose имеет специальную обработку для скаляров. Здесь тест проверяет, что значение numpy.sin почти равно нулю в целых кратных π.

>>> x = np.arange(3) * np.pi
>>> np.testing.assert_allclose(np.sin(x), 0, atol=1e-15)

Используйте strict для повышения AssertionError, когда массив с одним или несколькими измерениями сравнивается со скаляром.

>>> np.testing.assert_allclose(np.sin(x), 0, atol=1e-15, strict=True)
Traceback (most recent call last):
    ...
AssertionError:
Not equal to tolerance rtol=1e-07, atol=1e-15

(shapes (3,), () mismatch)
 ACTUAL: array([ 0.000000e+00,  1.224647e-16, -2.449294e-16])
 DESIRED: array(0)

Параметр strict также гарантирует, что типы данных массивов совпадают:

>>> y = np.zeros(3, dtype=np.float32)
>>> np.testing.assert_allclose(np.sin(x), y, atol=1e-15, strict=True)
Traceback (most recent call last):
    ...
AssertionError:
Not equal to tolerance rtol=1e-07, atol=1e-15

(dtypes float64, float32 mismatch)
 ACTUAL: array([ 0.000000e+00,  1.224647e-16, -2.449294e-16])
 DESIRED: array([0., 0., 0.], dtype=float32)

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.testing.assert_allclose.html

Spec-Zone.ru

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