2012-11-23 125 views
0

我想在python中生成0到380萬之間的隨機數,但它需要1秒來生成這樣的數字,那麼有沒有什麼好辦法以更快的方式生成它?如何優化python隨機函數

from random import randint 

randomIndex = randint(1, 3800000) 
print randomIndex 

這是加速1秒,不是每次,但有時我想優化它,所以有沒有解決方案?

還有一些不錯的算法?

+0

如果工作正常,那麼最好在http://codereview.stackexchange.com/上發佈。 –

+1

如果事情需要1秒鐘,那麼*在調用'randint()'時不*。你的機器是否與其他東西一起徵稅?它可能交換? –

+7

使用'timeit'模塊運行這一百萬次在我的機器上需要2秒鐘時間。這是*不是* python問題。 Python 3.3比這個稍微慢一點,但遠不及你聲稱的時間點。 –

回答

0

如果你想加快你的代碼,你可以嘗試使用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倍的加速。