我想使用具有不同均值和方差的高斯计算一组数值的概率值。例如,我可以这样做
scipy.stats.norm.pdf(9, [10, 12, 14], [2, 4, 5])
它给出了值9的pdf值,对于三个不同的高斯--N(10,2),N(12,4)和N(14,5)。我想为多个值做同样的事情,比如
scipy.stats.norm.pdf([8,9], [10, 12, 14], [2, 4, 5])
其中为三个高斯计算了8和9的pdf值,并且我得到一个2D数组作为返回。
问题
答案 0 :(得分:4)
pdf
方法将使用numpy broadcasting,因此在第二个示例中,您可以将第一个参数设为数组(实际上,"类似数组"就足够了)形状(2,1)。具有形状(2,1)的数组与具有形状(3,)的数组一起广播,得到具有形状(2,3)的数组:
In [14]: norm.pdf([[8],[9]], [10, 12, 14], [2, 4, 5])
Out[14]:
array([[ 0.12098536, 0.06049268, 0.03883721],
[ 0.17603266, 0.07528436, 0.04839414]])