python - numpy.random.randint 比 random.randint 慢
问题描述
In [27]: import random as rnd
In [28]: from numpy import random as nrnd
In [29]: %timeit rnd.randint(0,5)
859 ns ± 22.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [30]: %timeit nrnd.randint(0,5)
4.53 µs ± 104 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
In [31]: %timeit nrnd.randint(0,10000000)
4.67 µs ± 116 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
In [32]: %timeit rnd.randint(0,10000000)
979 ns ± 25.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
Python 3.7.3 (default, Mar 27 2019, 16:54:48)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.
在我的第二个测试用例中,我将随机范围增加到(0,10000000)
. 由于范围更大,numpy 应该在这个测试用例中表现更好。
为什么numpy.random.randint()
花费的时间比内置的多random.randint
?这里有什么额外的操作numpy
?
解决方案
推荐阅读
- selenium - 使用 Selenium 自动填写包含敏感信息的表单有多安全
- sql-server - RTF 内容导致 SQL Server CONCAT 失败
- azure - 自动删除存储中的文件
- git - git删除中间的commit
- jquery - 如何在 Django Crisp Forms 中使用小部件
- asp.net-mvc - 如何使用表单将模型从局部视图传递到操作
- r - 在给定 x 的相应值的情况下,是否有一个 R 函数用于检索 y 的值?
- r - rlang:在默认赋值函数中使用函数参数
- r - 将新的 lm 集成到现有的 lm 图中
- java - 比较父列表结构中的嵌套列表以获取 java 中特定索引中的值