Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用十进制,而不会对Python中的计算造成太大压力。_Python_Performance_Parameters_Decimal - Fatal编程技术网

如何使用十进制,而不会对Python中的计算造成太大压力。

如何使用十进制,而不会对Python中的计算造成太大压力。,python,performance,parameters,decimal,Python,Performance,Parameters,Decimal,我使用线性回归梯度来计算我的模型的参数,而使用浮点数来计算线性模型,我每秒大约有200次迭代,这是可以的。但是由于我使用高斯模型,我开始发现关于浮点的错误已经不够了,所以我完全用十进制模块重写了代码 import decimal decimal.getcontext().prec = 28 但当我计算这些参数时,我得到了如下结果 a = Decimal('-3.351803999105655683642509191E+5355') 每8小时进行3000次迭代。显然我不能用这么慢的代码。我的计

我使用线性回归梯度来计算我的模型的参数,而使用浮点数来计算线性模型,我每秒大约有200次迭代,这是可以的。但是由于我使用高斯模型,我开始发现关于浮点的错误已经不够了,所以我完全用十进制模块重写了代码

import decimal
decimal.getcontext().prec = 28
但当我计算这些参数时,我得到了如下结果

a = Decimal('-3.351803999105655683642509191E+5355')

每8小时进行3000次迭代。显然我不能用这么慢的代码。我的计算不需要这么精确。我不能使用带小数的浮点数,因为如果我尝试的话,它们不会一起产生很多错误。如何使其在计算中使用更少的数字?对于这种问题有什么建议吗

如果您不需要这样的精度,为什么不尝试设置一个较低的精度?如果速度很重要,可以试试numpy?您使用的是python 3.3或更高版本吗?如果不是,pypy上的cdecimal模块比内置的十进制模块快:1。numpy会如何帮助我?请解释!2.我使用Python 2.7.4。3.就我所能得到的而言,我可以使用quantize,但由于我的代码非常庞大,而且充满了不同的方程式——很难相信我必须将它应用到我拥有的每一个十进制数上。