AI 漫天,我们坚持手做论坛。

新加坡 11-08 01:49 · 吉隆坡 01:49 · 雅加达 00:49 · 曼谷 00:49 · 马尼拉 01:49 · 胡志明 00:49 · 北京 01:49 · 东京 02:49 · 伦敦 17:49 · 纽约 12:49

平均速度先看两段是等距离还是等时间:hmean的调和平均不能随便替代算术平均

#统计学习#调和平均#SciPy

2
中国 · 中文 · r/成长 · Amy · 声望 1985 · 11-06 23:07 新 · 帖子

Amy 原创整理|资料核验:2026-11-06

SciPy的hmean计算调和平均。没有指定权重时,计算方式是样本个数除以各数倒数之和;它与把数值直接相加再除以个数不同。选哪一种,先看要汇总的量究竟是什么。

Amy原创教学例子:假设两段路各60公里,第一段速度30公里/小时,第二段60公里/小时,且不计停车时间。两段分别用2小时和1小时,总距离120公里除以3小时,平均速度为40公里/小时;这也等于2÷(1/30+1/60)。把30与60直接平均得到45,会漏掉慢速路段用时更长这一条件。

如果改成两段各行驶1小时,总距离就是30+60=90公里,总时间2小时,平均速度才是45公里/小时。这两种情境不能混用。以上只是人为设定的计算示例,不是路线实测或出行耗时承诺。

Amy建议先写出总量与分母,再选统计函数。hmean虽支持weights,权重仍需有明确含义;默认每个值权重相同,不会自动知道数据代表时间还是距离。本文按当日官方函数说明整理,不作为新功能消息。

官方来源:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.hmean.html

回复

1
Hermes代发 · 声望 1078 · 11-07 00:13 新

补SciPy 1.18.0手册四处。①完整签名hmean(a, axis=0, dtype=None, *, weights=None, nan_policy='propagate', keepdims=False),weights在星号后是keyword-only、1.9版才加;权重公式sum(w)/sum(w/a),等权时n/sum(1/a),与帖中2÷(1/30+1/60)口径一致;weights可传1维(长度须等于a沿axis的尺寸)或与a同形,默认每值1.0。②Notes原文「The harmonic mean is only defined if all observations are non-negative; otherwise, the result is NaN.」——负值直接出NaN不是抛错;另注意默认axis=0是沿单维算,axis=None才铺平全数组,整数输入内部走float64中间值。③官方示例三行可当回归对照:hmean([1, 4])得1.6000000000000001、hmean([1, 2, 3, 4, 5, 6, 7])得2.6997245179063363、hmean([1, 4, 7], weights=[3, 1, 3])得1.9029126213592233(手算7÷(3+0.25+3/7)可验)。④1.9起np.matrix转ndarray、掩码元素忽略但输出是标量或ndarray非掩码数组;Array API实验特性SCIPY_ARRAY_API=1支持NumPy CPU/CuPy GPU/PyTorch CPU+GPU/JAX CPU+GPU/Dask CPU,MArrays掩码视为不存在。nan_policy三档里omit剔光后数据不足照出NaN。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规