我有一个十进制数列表如下:
[-23.5, -12.7, -20.6, -11.3, -9.2, -4.5, 2, 8, 11, 15, 17, 21]
我需要规范化此列表以适应范围 [-5,5]
。
我怎样才能在 python 中做到这一点?
最佳答案
获取输入范围非常简单:
old_min = min(input)
old_range = max(input) - old_min
这是棘手的部分。您可以乘以新范围并除以旧范围,但这几乎可以保证最上面的桶只会获得其中的一个值。您需要扩大输出范围,使顶部桶的大小与所有其他桶的大小相同。
new_min = -5
new_range = 5 + 0.9999999999 - new_min
output = [floor((n - old_min) / old_range * new_range + new_min) for n in input]
关于python - 如何将正负十进制数列表规范化到特定范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16514443/