gpt4 book ai didi

python - numpy:通过广播摆脱 for 循环

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:04 24 4
gpt4 key购买 nike

我正在尝试在 python 中实现高斯混合模型的期望最大化算法。

在给定均值 mu 和协方差 sigma X 的高斯概率 p em> 的高斯分布:

for i in range(len(X[0])):  
p[i] = scipy.stats.multivariate_normal.pdf(X[:,i],mu,sigma)

我想知道我是否可以以某种方式摆脱 for 循环以获得类似的东西

p[:] = scipy.stats.multivariate_normal.pdf(X[:,:]??)

我对广播做了一些研究,正在考虑使用 numpy.einsum功能,但无法弄清楚在这种情况下它是如何工作的。

最佳答案

展平,使用 pdf 调用并重新整形 -

from scipy import stats

out = stats.multivariate_normal.pdf(X.ravel(),mu,sigma).reshape(-1,len(X[0])).T

关于python - numpy:通过广播摆脱 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42077890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com