【问题标题】:How to get the range of valid Numpy data types?如何获取有效 Numpy 数据类型的范围?
【发布时间】:2010-12-12 03:17:29
【问题描述】:

我有兴趣查找特定 Numpy 类型(例如 np.int64np.uint32np.float32 等)所有可能的有效值的范围是什么(例如 np.int32 最多可以存储数字2**31-1)。当然,我想理论上每个类型都可以解决这个问题,但是有没有办法在运行时做到这一点,以确保代码更便携?

【问题讨论】:

    标签: python numpy types


    【解决方案1】:

    引用一个 numpy 讨论列表:

    该信息可通过numpy.finfo()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
    

    链接here

    【讨论】:

      【解决方案2】:

      您可以使用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 仅提供minmax,但finfo 也提供有用的值,例如eps(可表示的最小数字> 0)和resolution(该类型的近似十进制数分辨率arg)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 2018-08-01
        • 2020-03-09
        • 1970-01-01
        • 2021-06-09
        相关资源
        最近更新 更多