【问题标题】:numpy/pandas: test float64 arrays are equal up to significant digitsnumpy/pandas:测试 float64 数组是否等于有效数字
【发布时间】:2015-01-14 21:37:25
【问题描述】:

我有两个 pandas 数据框,用于存储金额,即最多具有 15 个有效十进制数字的十进制数。由于 float64 的精度为 15 位有效十进制数字,因此应该是无损的。

我如何比较两个此类数据帧的值,以确保其在 15 位有效十进制数字内的等效性?

简而言之,我正在寻找像 numpy.testing.assert_approx_equal 这样的东西 - 但是它应该将 numpy 数组作为参数,而不仅仅是标量。

另一种选择是使用舍入函数,该函数可以舍入到给定的有效小数位数,而不是通常的小数位。

【问题讨论】:

    标签: python numpy floating-point floating-accuracy floating-point-precision


    【解决方案1】:

    实际上有一个 numpy 函数:

    np.allclose
    

    定义/用法:

    np.allclose(a, b, rtol=1e-05, atol=1e-08)
    

    【讨论】:

    • 谢谢,但我认为这不是我想要的:“allclose(a,b) 可能与 allclose(b,a) 不同”。这不太对...
    • 是的,只需将 rtol 设置为 0.0 就不会这样了
    猜你喜欢
    • 1970-01-01
    • 2016-11-25
    • 2011-10-29
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2011-07-16
    相关资源
    最近更新 更多