检查2个浮点数是否几乎相等 - Numpy Python

时间:2017-03-27 22:54:21

标签: python arrays numpy

我试图检查数组中的所有数字是否几乎等于特定数字。 我在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)

我是否需要设置其他绝对和相对阈值参数。

2 个答案:

答案 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)