【问题标题】:random normal numbers using 2d means vector使用 2d 均值向量的随机正态数
【发布时间】:2021-06-25 11:24:36
【问题描述】:

我有一个二维均值向量。

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 的样本? 谢谢

【问题讨论】:

    标签: python numpy normal-distribution


    【解决方案1】:

    每个点有两个平均值(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 处理您需要提供协方差矩阵而不是标量方差这一事实。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-08
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      相关资源
      最近更新 更多