允许numpy类型溢出

时间:2019-02-27 16:39:00

标签: python numpy overflow

我正在尝试在Python中获得C型语言的“正常”上溢/下溢行为。令我惊讶的是,当我尝试获得这种行为时,出现了RuntimeWarning。示例:

np.uint8(255) + np.uint8(1)
>>> RuntimeWarning: overflow encountered in ubyte_scalars

有什么方法可以模拟所需的行为,即255 + 1给出0吗?

我尝试了文档,但是找不到记录的这种行为。

1 个答案:

答案 0 :(得分:1)

我相信numpy确实会给您正确的行为。

In [1]: np.uint8(255) + np.uint8(1)
/usr/bin/ipython:1: RuntimeWarning: overflow encountered in ubyte_scalars
  #!/usr/bin/python2
Out[1]: 0

您可以通过运行以下命令禁止显示警告:

In [1]: np.seterr(over='ignore')
Out[1]: {'divide': 'warn', 'invalid': 'warn', 'over': 'warn', 'under': 'ignore'}

In [2]: np.uint8(255) + np.uint8(1)
Out[2]: 0