numpy将数字转换为

2024-04-25 11:51:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个numpy矩阵,浮点数大多在0-255之间。但是,有些数字有点超出范围(比如-5.36270)。在

我想把矩阵转换成numpy.uint8类型,这样0-255范围内的数字可以上下舍入到闭整数(这无关紧要),但是小于0的数字应该是0,大于255的数字应该是255。在

你怎么做到的?在


Tags: numpy类型矩阵数字整数浮点数uint8超出范围
2条回答

您可以使用numpy.clip进行此操作:

a = np.arange(10)
np.clip(a, 1, 8)
> array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])

^{}将执行第一步:剪切到所需的范围。在

之后,可以使用^{}将所有数字截断为uint8数组:

result = np.clip(x, 0, 255).astype(np.uint8)

更好的方法可能是使用clipout参数一次完成截断。在这种情况下,必须显式地预先分配输出缓冲区:

^{pr2}$

相关问题 更多 >