我试图检查数组中的所有数字是否几乎等于特定数字。 我在python上使用Numpy.testing模块 例如:
array = [0.019968,0.020010,0.019975,0.019986,0.020021 ]
number = 0.02
我需要答案对所有案件都是真实的。
这就是我尝试但我总是失败的
numpy.testing.assert_array_almost_equal(array[1], 0.02)
numpy.testing.assert_array_almost_equal_nulp(array[1],0.02)
我是否需要设置其他绝对和相对阈值参数。
答案 0 :(得分:2)
你必须设置十进制。
numpy.testing.assert_array_almost_equal(array[1], 0.02, decimal=2)
十进制的默认值为6,您提供的样本数据超出了差距。
在您的情况下,十进制最多可以为5。
答案 1 :(得分:0)
您也可以使用 assert_allclose(actual, desired)
。
from numpy.testing import assert_allclose
要使用相对容差:
assert_allclose(array, np.full_like(array, number), rtol=1e-2)
要使用绝对容差:
assert_allclose(array, np.full_like(array, number), atol=1e-4)