如何在python中仅评估beta分布?

时间:2016-07-06 16:32:18

标签: python random beta-distribution

在我正在运行的模拟中,我必须从相同的beta分布中绘制许多值。目前,我正在使用

return _appointment
           .Where(appointment => 
                     (appointment.startTime < Date.Now) &&
                     (appointment.startTime.Date == DateTime.Today) &&
                     (Date.Now - appointment.startTime).TotalMinutes < 30)
           .ToList();

但是,这段代码非常慢。我认为这是因为beta分布被反复评估,因为它只能被评估一次,因为它不会在模拟过程中发生变化。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

你可以试试numpy的random.beta。它似乎要快得多:

import random
import numpy as np
n = 10**6

%timeit [random.betavariate(2, 3) for _ in range(n)]
1 loop, best of 3: 3.83 s per loop

%timeit np.random.beta(2, 3, n)
10 loops, best of 3: 99.7 ms per loop