从多元正态 pdf 中选择

Choose out of multivariate normal pdf

我有一些关于 scipy.stats.multivariate_normal 的问题。

  1. 它是什么return?我了解使用时:

    var = scipy.stats.multivariate_normal(mean, cov)
    z = var.pdf([x,y])
    

    我将在 z 中获取该索引的 pdf。这是真的吗?

  2. 我假设给出的平均值是pdf的峰值。我说的对吗?

  3. 我想创建一个 4D 高斯 pdf 地图,并根据 pdf 从中随机选择 N 个点(用于粒子滤波器预测)。要使用 np.choose,我需要创建一个形状为 (M,1) 的 pdf 值数组,以及一个形状为 (M, 4).

    的 4D 点数组

有没有更有效的方法来做到这一点?

正态分布非常普遍并在许多不同的地方实现,所以我认为您最好使用 numpy 的随机正态采样:https://numpy.org/doc/stable/reference/random/generated/numpy.random.normal.html。在此函数中,您可以指定输出的形状。

使用 DIN 的答案,这就是我所做的:

x_predict = np.random.normal(mean[0], covs[0], N)
y_predict = np.random.normal(mean[1], covs[1], N)
sx_predict = np.random.normal(mean[2], covs[2], N)
sy_predict = np.random.normal(mean[3], covs[3], N)
particles = np.dstack((x_predict, y_predict, sx_predict, sy_predict))