python数学,numpy模块不同的结果?

标签 python numpy floating-point

我在计算一个值的余弦值时得到的结果略有不同。我如何检查这种差异是否在机器精度范围内?

import math
math.cos(60.0/180.0*math.pi)
-> 0.5000000000000001

import numpy
numpy.cos(60.0/180.0*numpy.pi)
-> 0.50000000000000011

最佳答案

差异似乎仅由格式化例程引起:

>>> '%.30f' % math.cos(60./180.*math.pi)
'0.500000000000000111022302462516'
>>> '%.30f' % np.cos(60./180.*np.pi)
'0.500000000000000111022302462516'

请注意,np.cos 返回 np.float64 而不是 float,显然默认情况下打印的类型不同。在普通硬件上,它们都实现为 64 位 double,因此在精度上没有实际差异。

关于python数学,numpy模块不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7825543/

相关文章:

python - 如何将数据帧的行与二维数组列表进行比较 - Python

python - 二维数组作为 Pytorch 中的索引

python - Numpy 与 Python 浮点计算产生不同的结果

Python tar生成问题

python - python 3的密码学工具

python - '<' 在这一行中做什么? : data += dt < b

C++ `digits10` 对于 IEEE float 是 6,但第一个不可表示的整数已经有 8 位数字?

python - 如何在 python 中截断浮点不精确

python - keras - 使用 lambda 层时如何避免尺寸错误

python - 为什么Heroku找不到满足要求的 'os'版本?