【发布时间】:2012-06-11 04:44:03
【问题描述】:
我正在尝试使用 numpy.average 对十进制数列表进行加权平均;但是,我收到了 TypeError。例如,请考虑以下内容。
>>> from decimal import *
>>> import numpy
>>> s = '1.00000001'
>>> l = []
>>> l.append(Decimal(s))
>>> l.append(Decimal(s))
>>> numpy.average(l)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/site-packages/numpy/lib/function_base.py", line 612
, in average
avg = a.mean(axis)
TypeError: unsupported operand type(s) for /: 'Decimal' and 'float'
如何在不转换为浮点数并使用 numpy 丢失值精度的情况下获取十进制数列表的加权平均值?
【问题讨论】:
-
呃,你确定你要的是weighted average吗?如果是这样,您需要为每个对应值设置一个权重。看来您正在尝试获得算术平均值。
-
如果你真的需要使用 Decimal 值,numpy 不是适合你的工具。
标签: python