我在我的python终端(在Enthought Canopy IDE中)中通过
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)
2条答案
按热度按时间flvlnr441#
更新:从评论来看,在64位系统上使用128位浮点数似乎毫无意义。
我在64位Ubuntu 14.04系统上使用
sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)
128位浮点数工作正常:
这可能是一个分配问题。试试看:
编辑:来自评论的更新:
不是我的反对,但这篇文章并没有真正回答“为什么np.float128不存在于我的机器上”这个隐含的问题。真正的答案是,这是平台特定的:float 128在某些平台上存在,但在其他平台上不存在,在那些确实存在它的平台上,它几乎肯定只是80位x87扩展精度类型,填充到128位。- -马克·迪金森
eyh26e7m2#
对我来说,这个问题是一个Python模块在Windows中有问题(PyOpenGL为那些关心的人)。This站点有Python wheels,其中包含许多流行模块的“固定”版本,以解决float128问题。
注意:这个问题有一个公认的答案。我的答案是给未来的搜索者的,因为这个问题在
module 'numpy' has no attribute 'float128'
的谷歌结果中很高。