【问题标题】:Multivariate Normal pdf in ScipyScipy中的多元正态pdf
【发布时间】:2016-06-14 04:06:32
【问题描述】:

试图评估 scipy 的 multivariate_normal.pdf 函数,但不断出错。 MWE:

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 表示meancov 参数都是可选的,并且x 的最后一个轴标记了组件。由于x.shape = (4L,),似乎一切都是洁净的。我期待一个数字作为输出。

【问题讨论】:

    标签: python numpy scipy


    【解决方案1】:

    看起来这些参数不是可选的。

    如果我传递 meancov 的默认值,例如:

    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.27012396,  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)
    

    【讨论】:

    • 即使指定meancov 参数,为什么函数不返回单个数字,即在x 评估的多元正态pdf
    • @bcf 显然该函数从mean 和/或cov 的形状推断尺寸。如果 x 的长度为 5 并且它是 5d 中的一个点,请尝试 mvnorm.pdf(x, mean=np.zeros(5), cov=1)
    • “看起来这些参数不是可选的。” 此处创建的错误报告:github.com/scipy/scipy/issues/6263
    猜你喜欢
    • 2013-12-05
    • 2015-08-14
    • 1970-01-01
    • 2013-12-08
    • 2011-08-18
    • 2017-02-09
    • 1970-01-01
    • 2021-03-31
    • 2017-03-20
    相关资源
    最近更新 更多