我有一个使用np.random.uniform的算法我想切换到np.random.beta和/或np.random.gamma来提高近似效率。由于算法已经相当耗时(约8小时)和内存密集型(每个线程5 GB),我想检查是否有任何关于在我尝试运行之前这将花费多少钱的信息。
由于它是在循环内部调用的,我应该假设它不会改变内存需求吗?
运行时间有什么不同?
答案 0 :(得分:1)
使用ipython测试它:
In [1]: import numpy as np
In [2]: %timeit np.random.random(1000)
100000 loops, best of 3: 9.25 µs per loop
In [3]: %timeit np.random.beta(0.5, 0.5, 1000)
10000 loops, best of 3: 45.3 µs per loop
这意味着因子为5,但它似乎取决于β的参数。
然而,在得出任何结论之前,您应该确保随机数生成是算法的时间限制因素。运行探查器以找出真正的瓶颈所在。