数字数据类型的最大允许值

我使用的是一系列数据类型的数字数组(uint8、 uint16、 int16等等)。我希望能够检查数字是否可以在给定数据类型的数组限制内表示。我在想象一些东西,看起来像:

>>> im.dtype
dtype('uint16')
>>> dtype_max(im.dtype)
65535
>>> dtype_min(im.dtype)
0

这种东西真的存在吗?顺便说一句,我觉得这个问题以前一定有人问过,但是我的搜索结果是空白的,所有的“类似问题”似乎都是无关的。

编辑: 当然,现在我已经问过了,其中一个“相关”的问题确实有答案。

51618 次浏览

You're looking for numpy.iinfo for integer types. Documentation here.

There's also numpy.finfo for floating point types. Documentation here.

min_value = np.iinfo(im.dtype).min
max_value = np.iinfo(im.dtype).max

docs:

  • np.iinfo (machine limits for integer types)
  • np.finfo (machine limits for floating point types)