我想为我的 uint16 信号添加噪声,但我想避免溢出,以防某些信号值为零:
np.seterr(all='raise')
noise = np.random.normal(0,2,9*9).reshape(9,9)
noise = np.around(noise,out=noise)
noise = noise.astype(np.uint16,copy=True)
signal = np.zeros((9,9), dtype=np.uint16)
try:
signal += noise
except FloatingPointError:
print("Overflow Detected")
# Handle overflows
print(test)
不幸的是,没有提出例外。文档中的示例有效。
>>> np.int16(32000) * np.int16(3)
---------------------------------------------------------------------------
FloatingPointError Traceback (most recent call last)
<ipython-input-84-5e468485740e> in <module>
----> 1 np.int16(32000) * np.int16(3)
有没有办法为 uint16 添加启用异常?
或者是否有一种有效的方法来检查不涉及逐个元素遍历数组的溢出?