Python 使用numpy.random.multivariable_normal(平均值,cov[,大小])绘制多个样本

Python 使用numpy.random.multivariable_normal(平均值,cov[,大小])绘制多个样本,python,arrays,numpy,random,Python,Arrays,Numpy,Random,使用numpy函数numpy.random.multivariable\u normal(),如果我给出平均值和协方差,我就能够从多元高斯分布中抽取随机样本 例如, import numpy as np mean = np.zeros(1000) # a zero array shaped (1000,) covariance = np.random.rand(1000, 1000) # a matrix of random values shaped (1000,1000) draw =

使用numpy函数
numpy.random.multivariable\u normal()
,如果我给出平均值和协方差,我就能够从多元高斯分布中抽取随机样本

例如,

import numpy as np
mean = np.zeros(1000)  # a zero array shaped (1000,)
covariance = np.random.rand(1000, 1000) 
# a matrix of random values shaped (1000,1000)
draw = np.random.multivariate_normal(mean, covariance)
# this outputs one "draw" of a multivariate norm, shaped (1000,)
上述函数从多元高斯形状的
(1000,)
(协方差矩阵的形状为
10001000)
)输出一个“绘图”

我想要200张。如何做到这一点?我会创建一个列表,但我不知道如何创建迭代

编辑:两者之间有区别吗

draw_A = np.random.rand(1000, 1000, 200)

?


是的,
draw\u B
是一个列表,但是它们都是200个独立的绘图形状
10001000)

您注意到列表中的
size
参数了吗

例如,此调用从三维分布生成5个样本:

In [22]: np.random.multivariate_normal(np.zeros(3), np.eye(3), size=5)
Out[22]: 
array([[ 1.08534253,  0.70492174, -0.8625333 ],
       [ 0.16955737, -0.89453284,  0.8347796 ],
       [ 0.49506717, -1.18087912, -0.89118919],
       [-0.97837406, -0.42304268,  0.4326744 ],
       [-1.18836816,  1.33389231,  0.23616035]])

对问题的答复:

  • np.random.rand(d0,d1,d2)
    从[0,1]上的单变量均匀分布中随机抽取
    d0*d1*d2
    ,并以形状
    (d0,d1,d2)
    的数组返回它们
  • np.random.multivariable\u normal(mean,cov,size=n)
    ,其中
    mean
    是一个具有形状
    (m,)
    的数组,
    cov
    是一个具有形状
    (m,m)
    的数组,使
    n
    从多元正态分布中提取,并将其作为具有形状
    (n,m)的数组的行返回
    。您的列表理解
    draw_B
    还从多元正态分布中提取样本,每个函数调用一个样本,它将样本放入列表而不是数组中

是的,我注意到了这一点。请参阅我上面的编辑以获得澄清。
draw\u A
是否与
draw\u B
相同?
In [22]: np.random.multivariate_normal(np.zeros(3), np.eye(3), size=5)
Out[22]: 
array([[ 1.08534253,  0.70492174, -0.8625333 ],
       [ 0.16955737, -0.89453284,  0.8347796 ],
       [ 0.49506717, -1.18087912, -0.89118919],
       [-0.97837406, -0.42304268,  0.4326744 ],
       [-1.18836816,  1.33389231,  0.23616035]])