小数dtype是否在numpy中可用?

>>> import decimal, numpy
>>> d = decimal.Decimal('1.1')
>>> s = [['123.123','23'],['2323.212','123123.21312']]
>>> ss = numpy.array(s, dtype=numpy.dtype(decimal.Decimal))
>>> a = numpy.array(s, dtype=float)
>>> type(d)
<class 'decimal.Decimal'>
>>> type(ss[1,1])
<class 'str'>
>>> type(a[1,1])
<class 'numpy.float64'>

我想numpy.array并不支持每个dtype,但是我认为只要定义正确的操作,它至少可以让dtype传播到尽可能远的距离。我想念什么吗?有什么办法可以工作吗?

最佳答案

重要提示:这是一个糟糕的答案

所以我在真正理解问题之前回答了这个问题。答案已被接受,并且有一些支持,但您最好跳至下一个。

原答案:

似乎Decimal可用:

>>> import decimal, numpy
>>> d = decimal.Decimal('1.1')
>>> a = numpy.array([d,d,d],dtype=numpy.dtype(decimal.Decimal))
>>> type(a[1])
<class 'decimal.Decimal'>

我不确定您要完成的工作,您的示例比简单创建十进制numpy数组所需的示例复杂。

关于python - 带有dtype十进制的numpy数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7770870/

10-15 02:26