簡體   English   中英

用隨機數填充numpy數組的最快方法

[英]Fastest way to fill numpy array with random numbers

是否有更快的方法來獲得一個充滿隨機數的numpy數組而不是內置的numpy.random.rand(count)函數? 我知道內置方法是使用Mersenne Twister。

我想使用numpy進行蒙特卡羅模擬,並且獲取隨機數是占用大部分時間的。 一個簡單的例子,通過monte carlo與200E6隨機數進行積分計算pi只能通過我的程序處理大約116.8 MB / s。 使用xor128()作為生成器以C ++編寫的可編譯程序處理數百MB / s。

編輯:計算的生成率

如果可以接受,你可能會通過降低准確性來略微提高性能。 我通過使用randint和縮放來做到這一點:

使用ipython %%timeit

count =1000

numpy.random.rand(count)

10000 loops, best of 3: 24.3us per loop

numpy.random.randint(0,1000,count)*0.001

10000 loops, best of 3: 21.4us per loop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM