【发布时间】:2020-08-03 02:09:17
【问题描述】:
我正在与 Pandas read_csv 函数中的一些浮点问题作斗争。在我的调查中,我发现了这一点:
In [15]: a = 5.9975
In [16]: a
Out[16]: 5.9975
In [17]: np.float64(a)
Out[17]: 5.9974999999999996
为什么 Python 的内置 float 和 Python 的 np.float64 类型会给出不同的结果?我以为他们都是 C++ 双打?
【问题讨论】:
-
另请注意,Pandas
read_csv函数采用了自己的超快速字符串到浮点数的转换,该转换未正确舍入。因此,在导出一个值并重新读取它之后,恢复的值最终可能与原始值相差 1 或 2 ulps。
标签: python numpy floating-point