使用Python的Decimal参数的Numpy
我遇到了一点问题。
在我的程序中,我使用Python 3.3创建了一个小数值的列表(x):
[Decimal('646'), Decimal('651'), Decimal('657')]
我想用Numpy来计算这个列表的平均值。
所以我写了:
tempArray = numpy.array(x, dtype=np.dtype(decimal.Decimal))
但是我收到了这个错误:
TypeError: unsupported operand type(s) for /: 'decimal.Decimal' and 'float'
我的代码哪里出错了呢?
2 个回答
2
为什么需要使用Numpy呢?其实用其他方法也能很简单地做到这一点。
>>> sum(x)/len(x)
Decimal('651.3333333333333333333333333')
不过,我还是成功地做到了。
>>> np.array(x).mean()
Decimal('651.3333333333333333333333333')
2
在我使用Python 2.7的时候,下面的代码运行得很好。
import numpy
from decimal import Decimal
x = [Decimal('646'), Decimal('651'), Decimal('657')]
tempArray = numpy.array(x, dtype=numpy.dtype(Decimal))
print numpy.mean(tempArray)