Python 如何从多元正态分布创建多个观测值?

Python 如何从多元正态分布创建多个观测值?,python,Python,我试图从多元正态分布(均值,I)中创建n=100个观测值x,而x是(2,)向量,并且已知均值遵循另一个多元分布(([0,0],σ))。我如何实现这些目标?我被np.random.multivariable_normal函数中的大小部分所困扰,似乎我从未设置过我想要的尺寸 mean_mean = np.array([0,0]) mean_sigma = np.array([[0.1,0],[0,0.1]]) mu = np.random.multivariate_normal(m0,S0,1).r

我试图从多元正态分布(均值,I)中创建n=100个观测值x,而x是(2,)向量,并且已知均值遵循另一个多元分布(([0,0],σ))。我如何实现这些目标?我被np.random.multivariable_normal函数中的大小部分所困扰,似乎我从未设置过我想要的尺寸

mean_mean = np.array([0,0])
mean_sigma = np.array([[0.1,0],[0,0.1]])
mu = np.random.multivariate_normal(m0,S0,1).reshape(2,)
u = np.array([0,0])
I = np.array([[1,0],[0,1]])
x = np.random.multivariate_normal(u,I,100)

由于我们不知道平均值,而只知道平均值服从某种分布,我们首先需要对平均值进行
n=100
采样,我们可以这样做:

将numpy导入为np
样本=100
mean_mean=np.数组([0,0])
平均值σ=np.数组([[0.1,0],[0,0.1]]
mu=np.随机.多元正态(平均值,平均值西格玛,样本)
这样,我们就可以对所需的
x
值进行采样。不幸的是,我们传递给
multivariable_normal
的平均值必须是一维的,因此我们无法通过不同的平均值对绘图进行矢量化。相反,我在这里循环给出
x
值的方法

I=np.array([[1,0],[0,1]]
x=np.零([样本,2])
对于范围内的i(样品):
x[2*i:2*(i+1)]=np.随机多变量正态(mu[i],i,1)
编辑 经过一点思考,很容易将
x
的绘图矢量化。为此,我们将从标准的多元正态分布中提取并转换输出

x=np.随机多变量正态分布(np.零(2),I,样本)
x+=mu