我是Python的初学者。如果有人可以帮助我,将不胜感激。
我有一个数组O
,其中第一和第二列分别对应于三个多元正态随机变量的平均值和cov。(每行一个)
我想使用SciPy的multivariate_normal.pdf()
通过这三个均值和cov来计算给定数字(例如x = 2.5
)的概率分布函数。结果应保存为alpha
形状的数组1 * 3
。
我需要使用multivariate_normal.pdf(x, mean=m, cov=co)
。我的代码:
import numpy as np
from scipy.stats import multivariate_normal
alpha = np.zeros((1, 3))
O = np.array([[3.8, 0.01], [1, 1], [2, 0.5]])
def c_emission(x, m, co):
return multivariate_normal.pdf(x, mean=m, cov=co)
alpha[0, :] = c_emission(2.5, O[:, 0], O[:, 1])
我的问题是c_emission(2.5, O[:, 0], O[:, 1])
是标量而不是向量。