范围之间的 numpy 拟合值



我在 numpy 中有一个数组,其中包含以下范围内的值:[0, 255] (ubyte),并希望将其重新映射到新的范围[0.0, 1.0](float)

x = [0, 127, 255]

应该成为

x = [0.0, 0.5, 1.0]

那篇帖子将一个数字范围转换为另一个范围,保持比率是非常通用的方法,如何重新映射范围,但没有解释如何在numpy中方便地做到这一点。

只需在数组上使用division'/'操作数:

这将应用操作element-wise,因此您可以通过255'divide'array,这将为您map值,如下所示:

import numpy as np
x = np.array([0,127,255], dtype="uint8")
x = x / 255

这给了:

array([0, 0.49803922, 1])

它不会给出您的[0,0.5,1]结果,因为127不是255的一半!

最新更新