我想用mu和sigma的四个不同参数调用scipy.stats.multivariate_normal
。然后,对于每个生成的概率密度函数,我需要在一个10个值的数组上调用该pdf。如何使用参数作为矩阵调用函数?
为了简单起见,让我们说,上面提到的功能是addXY
:
def addXY(x, y):
return x+y
params=[[1,2],[1,3],[1,4],[1,5]] # mu and sigma, four versions
inputs=[1,2,3] # values, in this case 3 of them
matrix = []
for pdf_params in params:
row = []
for inp in inputs:
entry = addXY(*pdf_params)
row.append(entry*inp)
matrix.append(row)
print matrix
这是Python的?
有没有办法传递参数和输入,并得到一个矩阵,其中所有的组合更pythonic /矢量化/更快?
重要通知:在本例中的输入是标量值(我已经设置的标量值,以简化问题描述,我实际使用n维向量的阵列,从而多元 _normal PDF)。
欢迎提供有关类似操作的提示和提示。
*“我给自己定标量值,以简化问题的描述。” *嘿,我觉得你简化太多了:) (看我的答案)。如何展示一个更合适的例子?您需要每个* mu *为一个n维矢量,并且每个“sigma”实际上将是一个n×n的协方差矩阵。 –
是的,你是对的!有没有可能用更新的信息做到这一点? –
不幸的是,它看起来像'multivariate_normal.pdf'没有广播它的参数,所以你会写一个循环来处理不同的平均值和协方差值。 –