首页 > 解决方案 > 在 numpy 中,我们如何检测 uint32/int32 上溢或下溢?

问题描述

我很惊讶即使设置 np.seterr(all='raise') 似乎也不会触发 int32 的上溢/下溢错误,尽管文档似乎说这些浮点设置也将应用于整数类型。

这只是快速处理业务的成本,还是有一些自动检测下溢/上溢的方法?我认为 ALU 有一些标志可以很容易地检测到......

import numpy as np
np.seterr(all='raise')

x = np.array(10,dtype=np.uint32)

y = np.array(100,dtype=np.uint32)

z = x-y

print(z) #=> 4294967206

标签: pythonnumpy

解决方案


这确实只是进行快速处理的成本。请参阅相关的错误案例


推荐阅读