15

我检查了我的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)
4

2 回答 2

4

更新:从评论来看,在 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 存在于某些平台上,但不存在于其他平台上,并且在确实存在的平台上,它几乎可以肯定只是 80 位 x87 扩展精度类型,填充为 128 位。——马克狄金森

于 2015-04-23T11:04:48.913 回答
0

对我来说,问题是一个 Python 模块在 Windows 中存在问题(对于那些关心的人来说是 PyOpenGL)。这个站点有许多流行模块的“固定”版本的 Python 轮子,以解决 float128 问题。


注意:这个问题有一个公认的答案。如果对于未来的搜索者,我的回答是,因为这个问题在谷歌搜索结果中很高module 'numpy' has no attribute 'float128'

于 2020-08-11T00:42:30.343 回答