Ann*_*nne 0 python random numpy
我需要在[0,1]中计算类似10 ^ 8个均匀分布的数字,用于蒙特卡罗模拟.我可以看到两种方法来获取这些 - 计算我需要的所有随机数,例如通过使用
numpy.random.random_sample(however_many_I_need)
Run Code Online (Sandbox Code Playgroud)
或反复打电话
numpy.random.random_sample()
Run Code Online (Sandbox Code Playgroud)
两种方法之间的随机数的速度或质量是否有任何差异?
为什么不及时看看呢?
import timeit
timeit.timeit("np.random.random_sample()",
setup="import numpy as np",
number=int(1E8))
Run Code Online (Sandbox Code Playgroud)
14.27977508635054
timeit.timeit("np.random.random_sample(int(1E8))",
setup="import numpy as np",
number=1)
Run Code Online (Sandbox Code Playgroud)
1.4685100695671025
至于质量,两种结果都是伪随机的 - 它们来自同一台发电机.如果你需要更安全的东西,可能值得在其他地方寻找,但如果这是一个简单的蒙特卡罗问题,我认为你真的不需要.
PS timeit很棒
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |