【问题标题】:How to optimise python random function [closed]如何优化python随机函数[关闭]
【发布时间】:2012-11-23 09:57:39
【问题描述】:

我想在 python 中生成 0 到 380 万之间的随机数,但是生成这样的数字需要 1 秒,那么有什么好方法可以更快地生成它吗?

from random import randint

randomIndex = randint(1, 3800000)
print randomIndex

这是 1 秒,不是每次,但有时我想优化它,有什么解决方案吗?

还有一些好的算法?

【问题讨论】:

  • 如果运行良好,最好将其发布到codereview.stackexchange.com
  • 如果事情需要 1 秒,那么在对 randint() 的调用中不是。您的机器是否与其他东西一起征税?也许是交换?
  • 在我的机器上使用timeit 模块运行这 100 万次需要不到 2 秒。这不是一个python问题。 Python 3.3 比这慢了一点,但远不及你声称的时间。
  • 确认,这在我的机器上需要几微秒:>python -mtimeit "from random import randint" "randint(1, 3800000)" 给出100000 loops, best of 3: 3.42 usec per loop
  • 如果其他人像我一样感到困惑:lac 是“南亚编号系统中的一个单位等于十万”。

标签: python random python-3.x


【解决方案1】:

如果你想加速你的代码,你可以尝试使用numpy包。

在我的系统上,随机给我:

$ python -mtimeit "from random import randint" "randint(1, 3800000)"
100000 loops, best of 3: 9.14 usec per loop

还有 numpy:

$ python -mtimeit "from numpy import random" "random.randint(1, 3800000)"
100000 loops, best of 3: 3.6 usec per loop

具有约 2.5 倍的加速。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2022-01-20
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    相关资源
    最近更新 更多