首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python数学模块中的log2

python数学模块中的log2
EN

Stack Overflow用户
提问于 2010-06-08 05:13:01
回答 3查看 51.7K关注 0票数 46

为什么它不存在?

代码语言:javascript
运行
复制
import math
[x for x in dir(math) if 'log' in x]
>>> ['log', 'log10', 'log1p']

我知道我可以做log(x,2),但是log2真的很常见,所以我有点困惑。

哦,看起来它只在C99中定义,而不是C90,我想这回答了我的问题。看起来还是有点傻。

EN

回答 3

Stack Overflow用户

发布于 2010-06-08 05:24:31

我想你已经回答了你自己的问题。:-)因为你可以做log(x, 2),所以没有log2(x)。正如巨蟒的禅宗(PEP 20)所说,“应该有1个,最好只有一个--显而易见的方法。”

也就是说,Issue3366考虑了log2 (向下滚动到最后3条消息),它在Python2.7和3.2的math模块中添加了其他几个C99数学函数。

编辑:log2在Issue11888中重新考虑,并在Python3.3中添加。

票数 54
EN

Stack Overflow用户

发布于 2014-03-12 23:51:52

我不确定有没有你想要的,但是:

--从数学的角度看,你可以做例如math.log(x)/math.log(2)。

--如果输入X是整型的,并且你在等待整型四舍五入的结果--你可以用右移位来更快地完成它。这适用于SHR命令,并且不使用Taylor级数+局部插值,后者隐藏在libc log()调用的幕后。

票数 6
EN

Stack Overflow用户

发布于 2021-02-28 05:06:39

对于任何晚到的人来说,Python3.3和更高版本都有math.log2。我猜它“通常比log(x,2),”或者log(x)/log(2)更准确。还有int.bit_length()。

Log to the base 2 in python

https://docs.python.org/3/library/math.html

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

https://stackoverflow.com/questions/2993214

复制
相关文章

相似问题

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