无法在64位架构上的Python中使用128位浮点


问题内容

我通过(在Enthought Canopy IDE中)在python终端中检查了指针的大小

import ctypes
print (ctypes.sizeof(ctypes.c_voidp) * 8)

我有一个64位架构,numpy.float64可以很好地工作。但是我不能用np.float128

np.array([1,1,1],dtype=np.float128)

要么

np.float128(1)

结果是:

AttributeError: 'module' object has no attribute 'float128'

我正在运行以下版本:

sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0)

问题答案:

更新:从注释来看,在64位系统上甚至具有128位浮点数似乎毫无意义。

anaconda在64位Ubuntu 14.04系统上使用 sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)

128位浮点数可以正常工作:

import numpy
a = numpy.float128(3)

这可能是发行问题。尝试:

编辑:从评论更新:

不是我的不赞成,但是这篇文章并没有真正回答“为什么我的机器上不存在np.float128”这个隐含的问题。真正的答案是这是特定于平台的:float128在某些平台上存在,但在其他平台上不存在,并且在确实存在的那些平台上,几乎可以肯定的是,它是填充到128位的80位x87扩展精度类型。–马克·迪金森