Функция assert_array_almost_equal
Функция assert_array_almost_equal
из модуля numpy.testing предназначена
для проверки приблизительного равенства двух
массивов. Она часто используется в тестах и
позволяет гибко настраивать допустимую
погрешность сравнения.
Синтаксис
np.testing.assert_array_almost_equal(x, y, decimal=6, err_msg='', verbose=True)
Основные параметры функции:
-
x- первый массив для сравнения -
y- второй массив для сравнения -
decimal- количество знаков после запятой, до которого сравниваются значения -
err_msg- сообщение об ошибке, если проверка не пройдена -
verbose- еслиTrue, то выводит подробную информацию о различиях
Пример
Сравним два массива, которые почти равны:
import numpy as np
arr1 = np.array([1.0, 2.0, 3.0])
arr2 = np.array([1.0000001, 2.0000001, 3.0000001])
np.testing.assert_array_almost_equal(arr1, arr2, decimal=6)
print("Arrays are approximately equal")
Результат выполнения кода:
"Arrays are approximately equal"
Пример
Попробуем сравнить массивы с различием больше допустимого:
import numpy as np
arr1 = np.array([1.0, 2.0, 3.0])
arr2 = np.array([1.01, 2.01, 3.01])
np.testing.assert_array_almost_equal(arr1, arr2, decimal=2)
Результат выполнения кода:
"AssertionError: Arrays are not almost equal to 2 decimals"
Пример
Сравнение двумерных массивов с разной точностью:
import numpy as np
arr1 = np.array([[1.234, 5.678], [9.012, 3.456]])
arr2 = np.array([[1.2345, 5.6785], [9.0125, 3.4565]])
np.testing.assert_array_almost_equal(arr1, arr2, decimal=3)
print("2D arrays are approximately equal")
Результат выполнения кода:
"2D arrays are approximately equal"
Пример
Использование с пользовательским сообщением об ошибке:
import numpy as np
arr1 = np.array([1.0, 2.0])
arr2 = np.array([1.5, 2.5])
try:
np.testing.assert_array_almost_equal(
arr1,
arr2,
decimal=2,
err_msg="Массивы не совпадают с точностью 2 знака"
)
except AssertionError as e:
print("Error:", e)
Результат выполнения кода:
"Error: Массивы не совпадают с точностью 2 знака"
Смотрите также
-
функцию
assert_array_equal,
которая проверяет точное равенство массивов -
функцию
assert_allclose,
которая проверяет равенство с относительной погрешностью -
функцию
assert_array_less,
которая проверяет, что все элементы меньше заданных -
функцию
assert_equal,
которая сравнивает любые объекты на равенство