设置超出范围值时引发错误

时间:2019-04-17 15:15:17

标签: python numpy types integer-overflow numpy-broadcasting

例如当将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)

1 个答案:

答案 0 :(得分:0)

我猜不可以手动进行预检查,因为您想依靠numpy的高速度吗?