【问题标题】:numpy default value for dtype out-of-rangedtype 超出范围的 numpy 默认值
【发布时间】:2020-05-07 14:34:18
【问题描述】:

作品:

import numpy as np
dtype_L1 = [('ts', np.float32), ('s_id', np.uint16)]

arr = np.array((1,2), dtype=dtype_L1)
arr
array((1., 2), dtype=[('ts', '<f4'), ('s_id', '<u2')]) ##### CORRECT

Huups:由于unit16 声明,-2 被解释为65534

arr2 = np.array((1,-2), dtype=dtype_L1)
arr2
array((1., 65534), dtype=[('ts', '<f4'), ('s_id', '<u2')]) ##### -2 interpreted wrongly

numpy 中是否有一种方法可以执行类似于 dtype 检查 的操作,以查看所有输入是否与 standard ranges 匹配?

所以它会检查unit16 字段是否为“无符号整数(0 到 65535)”,否则会设置默认值?

【问题讨论】:

    标签: python-3.x numpy dtype


    【解决方案1】:

    有几个检查数据类型范围的函数,请参阅here。整数和浮点数据类型分别有np.iinfonp.finfo。例如:

    info = np.iinfo(np.uint16)
    
    info
    >>> iinfo(min=0, max=65535, dtype=uint16)
    

    minmax 属性可以通过info.min 等方式访问。

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 2018-07-18
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      相关资源
      最近更新 更多