2024-04-25 11:51:19 发布
网友
我有一个numpy矩阵,浮点数大多在0-255之间。但是,有些数字有点超出范围(比如-5.36270)。在
我想把矩阵转换成numpy.uint8类型,这样0-255范围内的数字可以上下舍入到闭整数(这无关紧要),但是小于0的数字应该是0,大于255的数字应该是255。在
numpy.uint8
你怎么做到的?在
您可以使用numpy.clip进行此操作:
a = np.arange(10) np.clip(a, 1, 8) > array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])
^{}将执行第一步:剪切到所需的范围。在
之后,可以使用^{}将所有数字截断为uint8数组:
uint8
result = np.clip(x, 0, 255).astype(np.uint8)
更好的方法可能是使用clip的out参数一次完成截断。在这种情况下,必须显式地预先分配输出缓冲区:
clip
out
您可以使用numpy.clip进行此操作:
^{} 将执行第一步:剪切到所需的范围。在
之后,可以使用^{} 将所有数字截断为
uint8
数组:更好的方法可能是使用
^{pr2}$clip
的out
参数一次完成截断。在这种情况下,必须显式地预先分配输出缓冲区:相关问题 更多 >
编程相关推荐