使用Python的Decimal参数的Numpy

4 投票
2 回答
1180 浏览
提问于 2025-04-18 03:59

我遇到了一点问题。
在我的程序中,我使用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)

撰写回答