1
numpy.average를 사용하여 십진수 목록의 가중치 평균을 취하려고합니다. 그러나 TypeError를 받고 있습니다. 예를 들어, 다음을 고려하십시오.파이썬에서 numpy를 사용하여 십진수 목록의 가중 평균을 취하는 방법이 있습니까?
>>> 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'
은 어떻게 float로 변환 NumPy와를 사용하여 값의 정밀도를 잃지 않고 진수 번호 목록의 가중 평균을합니까?
어, 당신은 당신이 [_weighted_ 평균]을 요구하고 있다는 확신 (http://en.wikipedia.org/wiki/Weighted_mean)? 그렇다면 각각의 해당 값에 대해 가중치가 필요합니다. 산술 평균을 얻으려고하는 것 같습니다. – voithos
또한보십시오 : [numpy array with dtype Decimal?] (http://stackoverflow.com/a/7772386/222914) –
정말 소수점 값으로 작업해야하는 경우 numpy는 당신을위한 도구가 아닙니다. –