在 Python 中将大整数截断为 uint8 类型

Jon*_*cio 3 python arrays types casting

我正在将一个填充了有符号 32 位整数的数组转换为一个只有 uint8 值(从 0 到 255)的数组。现在,我的代码如下所示:

newArray = Image.fromarray(oldArray.astype(numpy.uint8))
Run Code Online (Sandbox Code Playgroud)

问题是:我希望小于零的数字变成零,大于 255 的数字变成 255,而这段代码显然不是那样操作的。

有没有一种简单的方法可以在不遍历整个数组的情况下做到这一点?

cam*_*lor 5

对于就地阈值,我会在将数组转换为新数据类型之前使用 numpy.clip(myArray,0,255)。