Python:在python中做几何均值的简单方法? [英] Python : easy way to do geometric mean in python?

查看:175
本文介绍了Python:在python中做几何均值的简单方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道有没有一种简单的方法可以使用python但不使用python软件包来进行几何均值.如果没有,是否有任何简单的方法可以做几何均值?

I wonder is there any easy way to do geometric mean using python but without using python package. If there is not, is there any simple package to do geometric mean?

推荐答案

几何均值的公式为:

因此,您可以轻松编写如下算法:

So you can easily write an algorithm like:

import numpy as np

def geo_mean(iterable):
    a = np.array(iterable)
    return a.prod()**(1.0/len(a))

您不必为此使用numpy,但是它比python更快地对数组执行操作(因为强制转换的开销"更少).

You do not have to use numpy for that, but it tends to perform operations on arrays faster than Python (since there is less "overhead" with casting).

如果溢出的可能性很高,则可以先将数字映射到 log 域,计算这些日志的总和,然后乘以1/n最后计算指数,如:

In case the chances of overflow are high, you can map the numbers to a log domain first, calculate the sum of these logs, then multiply by 1/n and finally calculate the exponent, like:

import numpy as np

def geo_mean_overflow(iterable):
    a = np.log(iterable)
    return np.exp(a.sum()/len(a))

这篇关于Python:在python中做几何均值的简单方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆