如何检查Python中float的大小?
我想检查一个浮点数到底是32位还是64位(还有一个numpy浮点数组的位数)。应该有现成的方法,但我就是没找到...
5 个回答
9
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。
比如,有人可能在使用一个特定的库时,发现它的某个功能没有按照预期工作。这时候,我们就需要去查找解决方案,看看其他人是怎么解决类似的问题的。
在这个过程中,我们可以在一些技术论坛上提问,比如StackOverflow。在那里,很多经验丰富的程序员会分享他们的经验和解决方案,帮助我们更好地理解问题。
总之,遇到问题时,不要害怕去寻求帮助,很多人都曾经历过类似的困扰,大家都愿意互相帮助。
print numpy.finfo(numpy.float)
Machine parameters for float64
---------------------------------------------------------------------
precision= 15 resolution= 1.0000000000000001e-15
machep= -52 eps= 2.2204460492503131e-16
negep = -53 epsneg= 1.1102230246251565e-16
minexp= -1022 tiny= 2.2250738585072014e-308
maxexp= 1024 max= 1.7976931348623157e+308
nexp = 11 min= -max
---------------------------------------------------------------------
17
numpy.finfo 可以列出 float32 这种数据类型的大小和其他属性,包括:
nexp:指数部分的位数,包括符号位和偏置位。
nmant:尾数部分的位数。
在使用 IEEE-754 标准的浮点数的机器上,
import numpy as np
for f in (np.float32, np.float64, float):
finfo = np.finfo(f)
print finfo.dtype, finfo.nexp, finfo.nmant
会打印出例如:
float32 8 23
float64 11 52
float64 11 52
(你也可以试试 float16 和 float128。)
35
你可以通过 sys.float_info
来查看 Python 中 float
(浮点数)的属性。这些属性会告诉你一些信息,比如浮点数的最大值、最小值、最大和最小的指数值等等。这些信息可以用来计算一个浮点数占用的字节大小。不过,我在很多不同的系统上只见过 64 位的浮点数。
NumPy 数组中的元素可能大小不一样,但你可以通过 a.itemsize
来查看它们的字节大小,其中 a
是一个 NumPy 数组。