【发布时间】:2019-04-17 15:15:17
【问题描述】:
例如,当设置uint8 矩阵元素等于-1 时,如何允许检查 numpy 中超出范围的值?当前行为只是静默接受,将元素设置为255。有没有办法在调试期间引发错误,或者只能通过子类化 numpy 数组来实现?这是一种比较常见的现象,很难观察和纠正,尤其是在有多个操作时。
一个例子:
import numpy as np
img = np.zeros((5, 5), dtype=np.uint8)
img[:] = -1
img
和输出:
array([[255, 255, 255, 255, 255],
[255, 255, 255, 255, 255],
[255, 255, 255, 255, 255],
[255, 255, 255, 255, 255],
[255, 255, 255, 255, 255]], dtype=uint8)
【问题讨论】:
标签: python numpy types integer-overflow array-broadcasting