无法在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)
这可能是发行问题。尝试:
- 安装Anaconda
- 更新机盖
- 检查路径中的python版本是否是anaconda或canopy提供的版本
编辑:从评论更新:
不是我的不赞成,但是这篇文章并没有真正回答“为什么我的机器上不存在np.float128”这个隐含的问题。真正的答案是这是特定于平台的:float128在某些平台上存在,但在其他平台上不存在,并且在确实存在的那些平台上,几乎可以肯定的是,它是填充到128位的80位x87扩展精度类型。–马克·迪金森