РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
323 of 541 menu

Функция testing.assert_array_equal

Функция testing.assert_array_equal проверяет равенство двух массивов NumPy. Она сравнивает форму массивов, их типы данных и поэлементные значения. Если массивы не совпадают по этим параметрам, функция выбрасывает исключение AssertionError с подробным сообщением о различиях.

Синтаксис

np.testing.assert_array_equal(x, y, [err_msg], [verbose])

Параметры:

  • x - первый массив для сравнения;
  • y - второй массив для сравнения;
  • err_msg - необязательное пользовательское сообщение об ошибке;
  • verbose - необязательный флаг для вывода подробной информации о различиях.

Пример

Сравним два одинаковых массива:

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([1, 2, 3, 4, 5]) np.testing.assert_array_equal(arr1, arr2) print("Arrays are equal")

Результат выполнения кода:

"Arrays are equal"

Пример

Сравним два разных массива. Функция выбросит исключение:

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([1, 2, 3, 4, 6]) np.testing.assert_array_equal(arr1, arr2)

Результат выполнения кода:

Traceback (most recent call last): File "<stdin>", line 1, in <module> File ".../numpy/testing/_private/utils.py", line 1186, in assert_array_equal assert_equal(desired, actual, err_msg, verbose=verbose) AssertionError: Arrays are not equal Mismatched elements: 1 / 5 (20.0%) Max absolute difference: 1 Max relative difference: 0.16666667 x: array([1, 2, 3, 4, 5]) y: array([1, 2, 3, 4, 6])

Пример

Используем пользовательское сообщение об ошибке:

import numpy as np arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[1, 2], [3, 5]]) np.testing.assert_array_equal( arr1, arr2, err_msg="Arrays do not match" )

Результат выполнения кода:

Traceback (most recent call last): File "<stdin>", line 1, in <module> File ".../numpy/testing/_private/utils.py", line 1186, in assert_array_equal assert_equal(desired, actual, err_msg, verbose=verbose) AssertionError: Arrays do not match Arrays are not equal Mismatched elements: 1 / 4 (25.0%) Max absolute difference: 1 Max relative difference: 0.25 x: array([[1, 2], [3, 4]]) y: array([[1, 2], [3, 5]])

Пример

Сравнение массивов с плавающей точкой:

import numpy as np arr1 = np.array([0.1, 0.2, 0.3]) arr2 = np.array([0.1, 0.2, 0.3000001]) try: np.testing.assert_array_equal(arr1, arr2) print("Arrays are equal") except AssertionError as e: print("Arrays are not equal") print("Error:", str(e)[:200])

Результат выполнения кода:

"Arrays are not equal" "Error: Arrays are not equal Mismatched elements: 1 / 3 (33.3%) Max absolute difference: 1.0000000000000005e-07 Max relative difference: 3.333333666666667e-07 x: array([0.1, 0.2, 0.3]) y: array([0.1, 0.2, 0.3000001])"

Пример

Использование в тестовой функции:

import numpy as np def test_array_operation(): input_arr = np.array([1, 2, 3, 4]) expected = np.array([2, 4, 6, 8]) result = input_arr * 2 np.testing.assert_array_equal( result, expected, "Multiplication operation failed" ) print("Test passed") test_array_operation()

Результат выполнения кода:

"Test passed"

Смотрите также

  • функцию assert_allclose,
    которая проверяет приближенное равенство массивов с заданной точностью
  • функцию assert_array_almost_equal,
    которая проверяет приближенное равенство массивов с заданным количеством десятичных знаков
  • функцию assert_equal,
    которая проверяет равенство любых объектов Python, включая скаляры
  • функцию assert_raises,
    которая проверяет, что блок кода вызывает указанное исключение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить