2009-11-01 90 views
24

我有兴趣找到特定的Numpy类型(例如,np.int64,np.uint32,np.float32等)所有可能的有效值的范围是什么(例如np.int32可以存储数字高达2 ** 31-1)。当然,我想理论上可以为每种类型弄清楚这一点,但是有没有办法在运行时做到这一点,以确保更便携的代码?有效numpy值的范围

回答

35

从numpy的dicussion报价单:

That kind of 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 

链接是在这里:link to numpy discussion group page

19

您可以使用numpy.iinfo(arg).max找到整数类型的arg最大值,并numpy.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表示的)和resolution(的arg类型的近似十进制数的分辨率)。