📅  最后修改于: 2023-12-03 15:34:15.696000             🧑  作者: Mango
numpy.assert_allclose()
方法用于比较两个数组或标量是否在指定的误差范围内相等。
numpy.assert_allclose(actual, desired, rtol=1e-07, atol=0, equal_nan=True, err_msg='', verbose=True)
actual
:进行比较的实际数组或标量。desired
:期望的值,也可以是数组或标量。rtol
:相对误差限制,等于最大允许的 (actual - desired) / desired。默认为1e-7。atol
:绝对误差限制,等于最大允许的 actual - desired。默认为0。equal_nan
:如果为True,则具有NaN的元素将被视为相等的。默认为True。err_msg
:如果给出,出现错误时将打印给定消息。verbose
:如果为True,则在出现错误时输出更多信息。如果输入数组在指定的误差范围内相等,则什么都不会做。否则,会引发一个AssertionError
错误。
import numpy as np
# 正确情况
np.testing.assert_allclose([1, 2], [1, 2], rtol=1e-7, atol=0)
# 错误情况
np.testing.assert_allclose([1, 2], [1, 3], rtol=1e-7, atol=0)
以上示例代码中,在第一个assert_allclose()
方法中,两个数组相等,因此不会引发AssertionError
错误。而在第二个assert_allclose()
方法中,两个数组不相等,超出了指定的误差范围,因此将抛出AssertionError
错误。
assert_allclose()
方法可以处理数组的广播,即两个数组在形状上不完全相等,但可以在广播之后进行比较。参考资料:https://numpy.org/doc/stable/reference/generated/numpy.testing.assert_allclose.html