python:二维分布的积分一阶矩

2024-09-27 23:27:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个(标准化的)二维数据数组——假设自变量是x和θ,数据就是数据。(数据实际上是一个后验分布,但只是以numpy数组的形式存储)我需要计算每个维度上的一阶矩,也就是说,我需要计算二重积分

enter image description here

我想我可以将其实现为,例如:

firstint = np.trapz(x*Data, dx=dx, axis=1)
a = np.trapz(firstint, dx=dy)

其中dx = x[1] - x[0]和{}(x和y都是1d等间距数据数组)。在

但这似乎不起作用——例如,当我用2D高斯函数测试它时,我希望得到高斯峰值处的(x,y)值,但我没有

谁能给我指出正确的方向吗?我做错什么了?在

编辑:这是一个MWE,输出如下。注意,其中一个尺寸(b积分)运行良好。只有当我设置xmeas=0.5时,a积分才给出预期的答案。我只是没有正常化,还是因为其他原因期待错误的答案?在

^{pr2}$

输出:

>> a: expected 0.1, got 0.147652018282
>> b: expected 0.523598775598, got 0.523610579349

Tags: 数据答案numpydatanp数组形式expected

热门问题