我正在尝试在Python中获得C类型语言的“正常”溢出/下溢行为。令我惊讶的是,当我试图获得此行为时,会引发一个RuntimeWarning
。示例:
np.uint8(255) + np.uint8(1)
>>> RuntimeWarning: overflow encountered in ubyte_scalars
有没有办法模拟期望的行为,也就是,255+1给0?
我尝试了文档,但找不到记录的此行为。
发布于 2019-02-28 00:47:06
我相信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
https://stackoverflow.com/questions/54910321
复制相似问题