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

为什么numpy计算weighted average得到的结果与预期不一致?

计算结果不符的原因

加权平均的标准计算逻辑为:分子是各数值与对应权重的乘积之和,分母是所有权重的总和,而非数值数组的元素数量,numpy的np.average方法带weights参数时严格遵循该规则计算。

具体计算验证:

  • 数值数组:a = [1,2,3,4]
  • 权重数组:wts = [1,2,3,4]
  • 乘积和(分子):1*1 + 2*2 + 3*3 + 4*4 = 30
  • 权重总和(分母):1+2+3+4 = 10
  • 最终加权平均结果:30 / 10 = 3.0,和numpy输出完全一致,方法本身无错误。

你自行计算得到的7.5不符合加权平均的定义,错误原因是将分母取值为数组元素个数4,而非权重总和。如果你的业务场景确实需要按该逻辑计算结果,可以直接使用如下代码实现,不需要调用带权重参数的np.average:

import numpy as np
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
print(np.sum(a * wts) / len(a))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:36:02