首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么对于小指数,numpy.power返回0,而math.pow返回正确答案?

为什么对于小指数,numpy.power返回0,而math.pow返回正确答案?
EN

Stack Overflow用户
提问于 2014-04-09 15:52:38
回答 2查看 3.8K关注 0票数 54
In [25]: np.power(10,-100)
Out[25]: 0

In [26]: math.pow(10,-100)
Out[26]: 1e-100

我希望这两个命令都返回1e-100。这也不是精度问题,因为即使在将精度提高到500之后,该问题仍然存在。是否有一些设置我可以更改以获得正确的答案?

EN

回答 2

Stack Overflow用户

发布于 2014-04-09 15:57:04

numpy方法假定您希望返回整数,因为您提供了一个整数。

np.power(10.0,-100) 

按照您的预期工作。

票数 34
EN

Stack Overflow用户

发布于 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签名(并返回正确的浮点值)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22956139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档