如果我有 N 个数据点,每个数据点都有 D 维,有没有办法在不使用 for 循环的情况下快速计算每个数据点的多元高斯 pdf 值?对于一个具有 D 维度的数据点 x,我可以按如下方式计算 pdf 的值(scipy):
multivariate_normal.pdf(x, mean, cov)
其中 x 为 1xD,平均值为 1xD,cov 为 DxD。我想计算这个,以便通过执行以下操作获得一个长度为 N 的 pdf 数组:
multivariate_normal.pdf(X, mean, cov)
其中 X 是 NxD。每个数据点具有相同的均值和协方差。做到这一点最有效的方法是什么?
最佳答案
只要传递一个合适的数组x,就没有问题。这里 pdf 是在二维空间的 5 个随机点处评估的。
mean = np.array([3, 2])
cov = np.array([[4, 1], [1, 5]])
x = np.random.uniform(size=(5, 2))
multivariate_normal.pdf(x, mean, cov)
返回
array([ 0.01424279, 0.01537563, 0.01758953, 0.01994425, 0.01584357])
关于python - 计算多个数据点的多元正态密度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47361838/