web-dev-qa-db-ja.com

有効なNumpyデータ型の範囲を取得するにはどうすればよいですか?

特定のNumpyタイプ(例:np.int64np.uint32np.float32など)を見つけることに興味があります。可能なすべての有効な値の範囲(例:np.int322**31-1までの数を格納できます。もちろん、理論的にはタイプごとにこれを理解できると思いますが、よりポータブルなコードを保証するために実行時にこれを行う方法はありますか?

44
astrofrog

派手なディスカッションリストからの引用:

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

リンク ここ

54
perimosocordiae

numpy.iinfo(arg).max を使用してargの整数型の最大値を検索でき、 numpy.finfo(arg).max を使用して検索できますargのfloat型の最大値。

>>> 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

iinfominmaxのみを提供しますが、finfoeps(表現可能な最小数> 0)やresolutionargのタイプのおおよその10進数の解像度)。

37
Mark Rushakoff