我试图用四个不同的mu和sigma参数调用^{
为了简单起见,我们假设上面提到的函数是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吗?
有没有一种方法可以传递参数和输入,并得到一个包含所有组合的矩阵,使其更加python化/矢量化/更快?
啊!重要注意:示例中的输入是标量值(为了简化问题描述,我设置了标量值,实际上我使用的是n维向量数组,因此,多变量\u normal pdf)。在
欢迎提供类似操作的提示和提示。在
这只是我的想法,以缩短代码和利用更多的库。在
实际上,在您的代码中,您没有使用numpy,scipy。问题是你是否愿意使用数字阵列用于进一步的数据处理。在
选项1:只需使用list来表示数组,使用list of list来表示矩阵:
使用zip方法的学分应给予 convert a flat list to list of list in python
选择2:使用数字阵列以及numpy.matrix公司用于进一步处理
^{pr2}$根据您对要计算的内容的描述,您不需要} 。此方法将broadcast其参数,因此通过传入具有适当形状的数组,您可以在一次调用中计算mu和sigma的不同值的PDF。这里有一个例子。在
multivariate_normal
。对于一个具有标量mu和sigma的发行版,您将使用一组标量值调用PDF方法。所以您可以使用pdf()
方法^{以下是您的
x
值(您称之为inputs
),以及参数:为了方便起见,将参数分为mu和sigma值的数组。在
^{pr2}$我们将使用
scipy.stats.norm
来计算PDF。在此调用计算}是具有形状(4,1)的2D数组。
x
和参数的所需组合的PDF。mu.reshape(-1, 1)
和{x
具有形状(3,),因此当这些参数被广播时,结果具有形状(4,3)。每一行是在x
处对mu和sigma中的一对进行计算的PDF。在换句话说,
p
的行是:相关问题 更多 >
编程相关推荐