Je souhaite trouver un type de Numpy particulier (par exemple np.int64
, np.uint32
, np.float32
, etc.) quelle est la plage de toutes les valeurs valides possibles (par exemple np.int32
peut stocker des nombres jusqu'à 2**31-1
). Bien sûr, je suppose que l'on peut théoriquement comprendre cela pour chaque type, mais existe-t-il un moyen de le faire au moment de l'exécution pour garantir un code plus portable?
Citant à partir d'une liste de discussion numpy:
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
Lien ici .
Vous pouvez utiliser numpy.iinfo(arg).max
pour trouver la valeur maximale pour les types entiers de arg
et numpy.finfo(arg).max
pour trouver la valeur maximale pour les types flottants de 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
ne propose que min
et max
, mais finfo
propose également des valeurs utiles telles que eps
(le plus petit nombre> 0 représentable) et resolution
(la résolution approximative en nombre décimal du type de arg
).