I have a numpy matrix with float numbers mostly in range 0-255. However, there are some numbers that are a bit out of range (like -5.36, 270).
I want to convert the matr
clip will do the first step: clipping to the desired range.
After that, you can use ndarray.astype to truncate all the numbers into a uint8
array:
result = np.clip(x, 0, 255).astype(np.uint8)
A better way might be to use clip
's out
parameter to do the truncation all at once. In this case you'll have to explicitly pre-allocate the output buffer:
result = np.empty_like(x, dtype=np.uint8)
np.clip(x, 0, 255, out=result)