2

これらの答えの1つをかなり検索しようとしましたが、探しているものが見つかりません。私はそれがかなり基本的であると確信しています、そして私は私が探しているものの検索をどのように表現するかわからないか、それを間違った方法で行っています。

scipyを使用して、次のいずれかを実行します。

ランダム分布によって変数を定義し、呼び出されるたびに新しい値を返すようにします。次に例を示します。

x = np.random.normal(30,30/10)
x = #random number
x = #new random number

最終的な目標は、このコードのビット(およびそれに似たいくつかのコード)を取得して、配列ガンマ内の各位置の分布によって定義されるg1およびg2の数値の確率変数を返すことです。それがうまくいくなら、g1randとg2rand内のランダムな値を調べてうれしいですが、ガンマ配列にそのためのループを設定する方法を理解することもできませんでした。最終的な目標は、コードのMCシミュレーションを実行することです。前もって感謝します。

disc = 11j #number of intervals
depth = 50
q = 300 #number of random sampls
n = depth
interval_thickness =abs(n/(abs(disc)-1))
depth_array = np.r_[0:n:(disc)]
ld1 = 10.0
ld2 = 70.0
g1 = 120
g1rand = np.random.normal(g1,g1/10,q)
g2 = 60
g2rand = np.random.normal(g2,g2/10,q)
condlist = [depth_array <= 0,depth_array<=ld1, depth_array<=ld2]
choicelist = [0, g1, g2]
gamma = np.select(condlist, choicelist)
interval_weight=interval_thickness*gamma
4

1 に答える 1

0

長いコードで何をしようとしているのかを完全に理解しているとは思いませんが、ランダムサンプルを1つずつ生成したい場合は、次を使用できますscipy.stats.norm:

>>> import scipy.stats
>>> x = scipy.stats.norm(loc=30, scale=30/10) # loc is mean, scale is stdev
>>> x.rvs() # return a single random sample from distribution
30.0640285320252
>>> x.rvs()
29.773804986818252
>>> x.rvs(5) # returns an array of 5 random samples from distribution
array([ 31.46684871,  28.5463796 ,  30.37591994,  30.50111085,  32.19189648])
>>> x.mean() # recover distribution parameters from x
30.0
>>> x.std()
3.0
于 2013-02-12T21:17:45.260 に答える