我试图在 Python 中获得 C 类型语言的“正常”溢出/下溢行为。令我惊讶的是,一个RuntimeWarning
当我试图获得这种行为时会引发。例子:
np.uint8(255) + np.uint8(1)
>>> RuntimeWarning: overflow encountered in ubyte_scalars
有什么方法可以模拟所需的行为,即 255+1 给出 0?
我尝试了文档,但找不到此行为的记录。
我相信 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)