In [25]: np.power(10,-100)
Out[25]: 0
In [26]: math.pow(10,-100)
Out[26]: 1e-100
我希望这两个命令都返回1e-100。这也不是精度问题,因为即使在将精度提高到500之后,该问题仍然存在。是否有一些设置我可以更改以获得正确的答案?
发布于 2014-04-09 15:57:04
numpy方法假定您希望返回整数,因为您提供了一个整数。
np.power(10.0,-100)
按照您的预期工作。
发布于 2015-02-05 05:31:34
(这只是本页上另外两个答案的脚注。)
给定输入两个输入值,您可以通过检查types
属性来检查np.power
将返回的对象的数据类型:
>>> np.power.types
['bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', 'LL->L', 'qq->q',
'QQ->Q', 'ee->e', 'ff->f', 'dd->d', 'gg->g', 'FF->F', 'DD->D', 'GG->G', 'OO->O']
Python兼容的整数类型由l
表示,兼容Python的浮点数由d
(documents)表示。
通过检查传递的参数类型并使用该列表中的第一个匹配签名,np.power
可以有效地决定返回什么。
因此,给定10和-100,np.power
将匹配integer integer -> integer
签名并返回整数0
。
另一方面,如果其中一个参数是浮点数,则使用the integer argument will also be cast to a float,并使用float float -> float
签名(并返回正确的浮点值)。
https://stackoverflow.com/questions/22956139
复制相似问题