2009-11-01 4 views
24

特定のNumpyタイプ(たとえばnp.int64、np.uint32、np.float32など)を検索することに興味があります。すべての有効な値の範囲がどのようなものであるかを調べることです(例:np.int32 2 ** 31-1までの数字を保存できます)。もちろん、理論的には各タイプごとにこれを理解できると思いますが、移植性の高いコードを実行するためにこれを実行時に行う方法はありますか? numpyのdicussionリストから引用有効なnumpy値の範囲

答えて

35

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

あなたは、最大値を見つけることarg、およびnumpy.finfo(arg).maxの整数タイプの最大値を見つけるためにnumpy.iinfo(arg).maxを使用することができますfloat型の場合は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で表現)とresolutionargのタイプの近似小数解像度)として有用な値を提供します。

関連する問題