Python:几何意味着a ** 1 / n,如果太大

时间:2017-10-05 08:11:07

标签: python

我有很多值列表:

reduce(operator.mul, [Decimal(i) for i in list])

我应该得到下一个值:

4.248649022193430909459625077E+583

打印值 - value**1/len(list) 此值太大 但我有下一步行动:

              try {
                    Bitmap bitmap = photo();
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                    bitmap.recycle();
                    byte[] array = stream.toByteArray();
                    encoded_String = Base64.encodeToString(array, 0);

                } catch (Exception e) {

                }
                new BackgroundWorker().execute(encoded_String);

如果列表非常大,我无法获取值 - 在这种情况下是否可以获得几何平均值?

1 个答案:

答案 0 :(得分:6)

而不是项目的乘法求和 对数

geometric_mean = (a1 * ... * an) ** (1/n) =
               = exp((log(a1) + .. + log(an)) / n)