3

2つの2D配列(高次元)、平均(M)と標準偏差(S)を定義する配列があります。対応するディストリビューションから抽出したサンプルを含む配列(X)を生成するためのPythonライブラリ(numpy、scipy、...?)がありますか?すなわちPython:NxM正規分布から抽出されたNxMサンプルの配列

: ijをX 各エントリは、対応する平均M IJと標準偏差s IJによって定義された正規分布に由来する試料です。

答えて

5

はいnumpyはここに助けることができます:彼らは多次元であっても

import numpy as np 
means = np.arange(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
stddevs = np.ones(10) # [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 

samples = np.random.normal(means, stddevs) 
 
array([-1.69515214, -0.20680708, 0.61345775, 2.98154162, 2.77888087, 
     7.22203785, 5.29995343, 8.52766436, 9.70005434, 9.58381479]) 

は、アレイのような入力を受け入れnp.random.normal機能があり

means = np.arange(10).reshape(2,5) # make it multidimensional with shape 2, 5 
stddevs = np.ones(10).reshape(2,5) 

samples = np.random.normal(means, stddevs) 
 
array([[-0.76585438, 1.22226145, 2.85554809, 2.64009423, 4.67255324], 
     [ 3.21658151, 4.59969355, 6.87946817, 9.14658687, 8.68465692]]) 
:あなたはまた、唯一のアレイと1つのスカラを渡すと、まだ右の形状と配列を取得することができます別の手段が、同じ標準偏差だけをしたい場合もう一つは (2,5)


の形状をしています

means = np.arange(10) 

samples = np.random.normal(means, 1) 
 
array([ 0.54018686, -0.35737881, 2.08881115, 3.08742942, 4.4426366 , 
     3.6694955 , 5.27515536, 8.68300816, 8.83893819, 7.71284217]) 
関連する問題