使用 2d 均值向量的随机正态数

random normal numbers using 2d means vector

我有一个二维均值向量。

means = np.array([[0,0], [0, 3], [3,0], [3,3], [0, 5]])

我想使用均值向量生成随机正态数。 如果方法只在 x 轴上,我会这样做:

x_samples = np.asarray(list(map(lambda mean: np.random.normal(mean, 1), x_means)))

有没有一种简单的方法可以一起生成 x 和 y 的样本? 谢谢

每个点有两个平均值(x 和 y),我假设您想要一个多元正态分布,每个轴上都有这些平均值,每个轴上的标准差为 1? (在您的 1d 示例中,标准偏差为 1)

在这种情况下,您可以使用 np.random.multivariate_normal

xy_samples = np.asarray([np.random.multivariate_normal(mean, np.diag([1., 1.])) for mean in means])  

或类似于您的公式,使用地图:

xy_samples = np.asarray(list(map(lambda mean: np.random.multivariate_normal(mean, np.diag([1., 1.])), means)))

np.diag 处理您需要提供协方差矩阵而不是标量方差这一事实。