Numpy 列上的随机正态分布

use*_*146 1 python numpy scipy

我正在尝试生成一个NumPy ndarray具有c列和n行但填充了从random normal分布中获取的数字的文件。我希望列上的分布呈正态,即我希望列的c/2值接近平均值(使列中的随机数c/2高于其左侧或右侧的随机数)。

NumPy为此的内置函数吗?

如果没有,我们可以指定NumPy随机正态分布以给出分布范围内的值,以便我可以单独填充列吗?

Ale*_*exG 5

好吧,你可以这样做:

scales = [0.01, 0.1, 1, 0.1, 0.01]
arrays = [np.random.normal(loc=0, scale=s, size=(3)) for s in scales]
np.vstack(arrays).T

array([[ 0.0021688 , -0.11704194,  0.84077943,  0.13570005, -0.01371024],
       [ 0.01726078, -0.00167188, -0.85074286,  0.01729595,  0.00696604],
       [ 0.00169041, -0.11899872,  0.34075113,  0.08299408,  0.00296036]])
Run Code Online (Sandbox Code Playgroud)