【问题标题】:computing cost of np.random.uniform vs np.random.betanp.random.uniform 与 np.random.beta 的计算成本
【发布时间】:2016-06-02 00:07:02
【问题描述】:
我有一个使用 np.random.uniform 的算法我想切换到 np.random.beta 和/或 np.random.gamma 以提高近似值的效率。由于该算法已经非常耗时(约 8 小时)和内存密集型(每个线程 5 GB),我想在尝试运行之前检查是否有任何信息说明这将花费我多少。
既然它是在循环中调用的,我应该假设它不会改变内存需求吗?
运行时间有什么区别?
【问题讨论】:
标签:
python
memory
random
time
【解决方案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,但它似乎取决于 beta 的参数。
不过,在得出任何结论之前,您应该确保随机数生成是您算法的时间限制因素。运行分析器以找出真正的瓶颈在哪里。