2016-06-13 2 views
4

Попытка оценить функцию scipy's multivariate_normal.pdf, но продолжать получать ошибки. MWE:Многомерный Обычный pdf в Scipy

import numpy as np 
from scipy.stats import multivariate_normal as mvnorm 

x = np.random.rand(5) 
mvnorm.pdf(x) 

дает

TypeError: pdf() takes at least 4 arguments (2 given) 

docs говорят оба mean и cov аргументы не являются обязательными, и что последней оси x меток компонентов. Начиная с x.shape = (4L,), похоже, что все кошерное. Я ожидаю, что в качестве вывода будет один номер.

ответ

3

Похоже, что эти параметры не являются обязательными.

Если я прохожу значения по умолчанию для mean и cov как:

import numpy as np 
from scipy.stats import multivariate_normal as mvnorm 

x = np.random.rand(5) 
mvnorm.pdf(x, mean=0, cov=1) 

я получаю следующий результат:

array([ 0.35082878, 0.27, 0.26986049, 0.39887847, 0.36116341]) 

При использовании:

import numpy as np 
from scipy.stats import multivariate_normal as mvnorm 

x = np.random.rand(5) 
mvnorm.pdf(x) 

дает мне ту же ошибку:

TypeError: pdf() takes at least 4 arguments (2 given) 
+0

Даже при указании 'mean' и' cov' аргументы, почему не функция возвращает единственное число, что будучи многомерной нормальная PDF оценивается в 'x' – bcf

+0

@bcf По-видимому, функция определяет размерность из форм 'mean' и/или' cov'. Если 'x' имеет длину 5 и предполагается, что это единственная точка в 5d, попробуйте' mvnorm.pdf (x, mean = np.zeros (5), cov = 1) '. –

+1

* «Похоже, что эти параметры не являются необязательными». * Отчет об ошибке создан здесь: https://github.com/scipy/scipy/issues/6263 –

Смежные вопросы