我有一套5个花园软管的加仑平均水流量值列表:
[6.6, 14, 12.6, 8.8, 11.8]
我想计算此列表的子对象/调和平均值,我发现这个answer有效:
def hmean(args):
return len(args) / sum(1. / val for val in args)
hose_flows = [6.6, 14, 12.6, 8.8, 11.8]
print(hmean(hose_flows)) # 9.986200495805194
但是我觉得这不是很优雅......肯定有更优雅的方式来做到这一点?
答案 0 :(得分:1)
如果您使用的是Python 3.6.0或更高版本,则可以使用statistics.harmonic_mean:
>>> import statistics
>>> hose_flows = [6.6, 14, 12.6, 8.8, 11.8]
>>> statistics.harmonic_mean(hose_flows)
9.986200495805194