Как получить диапазон допустимых типов данных Numpy? - PullRequest
37 голосов
/ 02 ноября 2009

Мне интересно найти для конкретного типа Numpy (например, np.int64, np.uint32, np.float32 и т. Д.), Каков диапазон всех возможных допустимых значений (например, np.int32 может хранить числа до 2**31-1). Конечно, я предполагаю, что теоретически это можно выяснить для каждого типа, но есть ли способ сделать это во время выполнения, чтобы обеспечить более переносимый код?

Ответы [ 2 ]

49 голосов
/ 02 ноября 2009

Цитирование из простого списка обсуждений:

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

Ссылка здесь .

31 голосов
/ 02 ноября 2009

Вы можете использовать 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 представляемых) и resolution (приблизительное разрешение десятичного числа типа arg).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...