#python #numpy #matrix #scipy #distribution
#python #numpy #матрица #scipy #распределение
Вопрос:
Я новичок в Python. Был бы признателен, если бы кто-нибудь мог мне помочь.
У меня есть массив O
, в котором первый и второй столбцы соответствуют среднему значению и значению трех (по одному для каждой строки) многомерных нормальных случайных величин соответственно.
Я хотел бы вычислить функцию распределения вероятностей, используя SciPy multivariate_normal.pdf()
для заданного числа (например x = 2.5
) с этими тремя средними значениями и значениями cov. Результат должен быть сохранен в массиве 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])
является скаляром вместо вектора.
Комментарии:
1. Я не рекомендую использовать
O
в качестве имени переменной, поскольку оно очень похоже на0
(ноль).