我正在运行的模拟需要我从概率分布中绘制值。我这样做如下:
import numpy as np
import scipy.special as sp
from scipy.stats import rv_continuous
class epsilon_pdf(rv_continuous):
def _pdf(self, x, omega):
return np.exp(omega ** -1 * np.cos(x)) / (2 * np.pi *
sp.iv(0, omega ** -1))
random_epsilon = epsilon_pdf(a=-np.pi, b=np.pi)
n_trials = 1 # 10 ** 6
goal_dict = {'omega': 2 ** -4, 'xi': 2 ** 0}
for trial_num in xrange(n_trials):
# Choose m.
m = np.random.poisson(goal_dict['xi'])
# Draw m values for epsilon.
epsilon_values = random_epsilon.rvs(omega=goal_dict['omega'], size=m)
(上面写的是最小的玩具示例。)
我遇到的一个主要问题是对random_epsilon.rvs
的调用速度非常慢 - 当我将n_trials
设置为所需的10 ** 6
时,omega
的某些值xi
非常缓慢1}}和SuggestedSafariViewController
会导致脚本花费377个小时才能完成。
有人能想到我的概率分布的Python代码的重新制定以及我的抽样会更快吗? (也许有一种方法可以使用更快的numpy来做到这一点?)
(我不确定我的发行版是否是一个已经命名的标准发行版。)
答案 0 :(得分:1)
php artisan cache:clear
php artisan clear-compiled
sudo chmod -R 777 storage/ -R
composer dump-autoload