python - Numpy float64 vs Python float

标签 python numpy floating-point

我正在与 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++ double ?

最佳答案

>>> numpy.float64(5.9975).hex()
'0x1.7fd70a3d70a3dp+2'
>>> (5.9975).hex()
'0x1.7fd70a3d70a3dp+2'

它们是相同的数字。不同的是他们的表现; Python 原生类型使用“合理”的表示,而 NumPy 类型使用准确的表示。

关于python - Numpy float64 vs Python float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098529/

相关文章:

python - 如何提高Python中for循环的性能

javascript - 为什么 Node.js 自动舍入我的 float ?

python - 十进制模块中的有效数字

python - django rest framework 在列表显示中隐藏特定字段?

java - 运行 NodeJS 服务器而不暴露其源代码

python - 使用 seaborn 在 x y 散点图中添加标签

opengl - 为什么除法产生的结果与 float 乘以分数的结果截然不同

python - 在列表中搜索项目时如何使用 any 和 not (python)

python - 从 Python 列表中删除 nan 值

一定范围内整数的 Python numpy 乘积