【发布时间】:2019-09-08 08:50:29
【问题描述】:
如果您将一个数字添加到一个数组槽中,使其超出其数据类型范围,它将在该范围之外循环并返回零。以 uint8 为例,其最大范围为 255:
z = np.zeros(2, dtype=np.uint8)
z[0]=z[0]+267
print(z[0])
> 11
我想防止任何使槽循环回零的添加。
我想出了这个功能
def ifAdd( addCand, numb):
if addCand+numb >255:
return
else:
addCand = addCand + numb
ifAdd(z[0], 267)
我想知道是否有更 Pythonic 的 numthonic 方式来执行此操作。或者至少是一种计算效率更高的方法。
【问题讨论】:
-
对于数组 -
np.where((255 - addCand) < numb,addCand,addCand+numb)?查看this post了解更多信息。 -
您的功能似乎已损坏。我敢打赌你需要
addCand += numb在else块中。它可能不适用于标量。