gpt4 book ai didi

python - 奇怪的 numpy.float96 行为

转载 作者:太空狗 更新时间:2023-10-30 02:50:38 26 4
gpt4 key购买 nike

我错过了什么:

In [66]: import numpy as np

In [67]: np.float(7.0 / 8)
Out[67]: 0.875 #OK

In [68]: np.float32(7.0 / 8)
Out[68]: 0.875 #OK

In [69]: np.float96(7.0 / 8)
Out[69]: -2.6815615859885194e+154 #WTF

In [70]: sys.version
Out[70]: '2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]'

编辑。在 cygwin 上,上面的代码工作正常:

$ python
Python 2.5.2 (r252:60911, Dec 2 2008, 09:26:14)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.float(7.0 / 8)
0.875
>>> np.float96(7.0 / 8)
0.875

为了完整性,我用纯 python(不是 Ipython)检查了这段代码:

C:\temp>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.float(7.0 / 8)
0.875
>>> np.float96(7.0 / 8)
-2.6815615859885194e+154
>>>

编辑

我在 Numpy 的 trac 站点上看到了三个错误报告(976902884),但这一个似乎与字符串表示无关。因此我打开了一个新的错误(1263)。会在这里更新进度

最佳答案

这对我来说很好:

In [1]: import numpy as np

In [2]: np.float(7.0/8)
Out[2]: 0.875

In [3]: np.float96(7.0/8)
Out[3]: 0.875

你用的是什么 Numpy?我使用的是 Python 2.6.2 和 Numpy 1.3.0,我使用的是 64 位 Vista。

我在另一台运行 32 位 XP 和 Python 2.5.2 和 Numpy 1.2.1 的计算机上尝试了同样的事情,令我惊讶的是我得到:

In [2]: np.float96(7.0/8)
Out[2]: -2.6815615859885194e+154

经过一些调查,在 32 位 XP 上安装 Python 2.6.3 和 Numpy 1.3.0,我发现:

In [2]: np.float96(7.0/8)
Out[2]: 0.875

所以一定是旧版Numpy的bug,或者是旧版Python的bug...

关于python - 奇怪的 numpy.float96 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1565731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com