You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将仅含正值的列表归一化至-1到+1的范围?

解决方案

核心思路

这本质是线性区间映射,和原数据是否全正/全负无关,只要指定原数据中的两个锚点(这里是2.16对应-1,8.64对应+1),就能把整个列表精准映射到[-1, 1]范围。

计算公式

对列表中每个数值x,归一化后的结果y按以下公式计算:

y = 2 * (x - min_anchor) / (max_anchor - min_anchor) - 1

其中:

  • min_anchor是对应-1的原数值(此处为2.16)
  • max_anchor是对应+1的原数值(此处为8.64)

代码实现

针对你的示例列表,可直接用如下代码处理:

data_list = [3.34, 2.16, 8.64, 4.41, 5.0]
min_anchor = 2.16
max_anchor = 8.64

normalized_list = [2 * (x - min_anchor) / (max_anchor - min_anchor) - 1 for x in data_list]
print(normalized_list)

运行后输出(保留三位小数):

[-0.636, -1.0, 1.0, -0.364, -0.207]

公式验证

  • 当x=2.16时:2*(2.16-2.16)/(8.64-2.16) -1 = 0 -1 = -1,完全符合要求
  • 当x=8.64时:2*(8.64-2.16)/(8.64-2.16) -1 = 2*1 -1 = 1,完全符合要求

内容的提问来源于stack exchange,提问作者Philipp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:22:36