如何获得有效Numpy数据类型的范围?

时间:2009-11-01 23:07:07

标签: python numpy types

我有兴趣找到一个特定的Numpy类型(例如np.int64np.uint32np.float32等等。)所有可能有效值的范围是什么(例如{{{{ 1}}可以存储最多np.int32)的数字。当然,我想理论上可以为每种类型解决这个问题,但有没有办法在运行时执行此操作以确保更可移植的代码?

2 个答案:

答案 0 :(得分:48)

从一个讨厌的讨论列表中引用:

That information is available via numpy.finfo() and numpy.iinfo():

In [12]: finfo('d').max
Out[12]: 1.7976931348623157e+308

In [13]: iinfo('i').max
Out[13]: 2147483647

In [14]: iinfo('uint8').max
Out[14]: 255

链接here

答案 1 :(得分:31)

您可以使用numpy.iinfo(arg).max查找整数类型argnumpy.finfo(arg).max的最大值,以查找arg的浮点类型的最大值。

>>> numpy.iinfo(numpy.uint64).min
0
>>> numpy.iinfo(numpy.uint64).max
18446744073709551615L
>>> numpy.finfo(numpy.float64).max
1.7976931348623157e+308
>>> numpy.finfo(numpy.float64).min
-1.7976931348623157e+308

iinfo仅提供minmax,但finfo也提供有用的值,例如eps(最小数字> 0可表示)和{ {1}}(resolution类型的近似十进制数分辨率。)