擅长:python、mysql、java
<p>这不是一个完整的答案,但它可能会给你指明正确的方向。你真正想要的是使用小数的numpy数组。您可能会合理地认为:</p>
<pre><code>import numpy as np
from decimal import Decimal
A = np.array([[2,2],[4,-1]],np.int)
for i, a in np.ndenumerate(A):
A[i] = Decimal(a)
print type(A[i])
</code></pre>
<p>但是遗憾的是,小数不在numpy中的<a href="http://docs.scipy.org/doc/numpy/user/basics.types.html" rel="nofollow">datatypes supported out of the box</a>中,所以每次您试图在数组中插入一个十进制数时,它都会将它重新转换为一个float。在</p>
<p>一种可能是设置数据类型,因此:</p>
^{pr2}$
<p>但是现在,如果你</p>
<pre><code>print Binv.dtype
</code></pre>
<p>你会看到反转已经把它重铸回float。原因是利纳格投资公司(与许多其他函数一样)查找B的“common_type”,即它认为可以强制数组元素的标量。在</p>
<p>不过,这可能并非无望。我想看看您是否可以通过创建一个自定义的数据类型来解决这个问题,但结果发现标量(int、float等)根本不是数据类型。相反,您可能要做的是注册一个新的标量,它是十进制的<a href="http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html#defining-new-types" rel="nofollow">article on scalars</a>。您将看到一个指向numpyc-API的链接(不要害怕)。在页面中搜索“register”和“scalar”以开始。在</p>