我有兴趣找到一个特定的Numpy类型(例如np.int64
,np.uint32
,np.float32
等等。)所有可能有效值的范围是什么(例如{{{{ 1}}可以存储最多np.int32
)的数字。当然,我想理论上可以为每种类型解决这个问题,但有没有办法在运行时执行此操作以确保更可移植的代码?
答案 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
查找整数类型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
仅提供min
和max
,但finfo
也提供有用的值,例如eps
(最小数字> 0可表示)和{ {1}}(resolution
类型的近似十进制数分辨率。)