python-Scipy多维内核密度估计

我一直在尝试获取30×30阵列的内核密度估计.下面是一个简短的示例,

from scipy.stats import gaussian_kde

x = arange(-0.5,0.51,1/29.)
y = arange(-0.5,0.51,1/29.)
z = randn(30,30)

vec = vstack((x,y))

KDE = gaussian_kde(z.T)
KDE2 = KDE(vec)

这给出了以下错误,

ValueError: points have dimension 2, dataset has dimension 30

我在这里发现了一些其他帖子,这些帖子建议在估算之前需要重塑数据,但是我不确定如何正确执行此操作.

任何帮助表示赞赏
d

解决方法:

当KDE = gaussian_kde(z.T)时,您将对30个随机变量(检查KDE.n)进行内核密度估计,每个变量具有30个维度(检查KDE.d).

如果您正在研究某些数据,则该数据是gaussian_kde()的输入.

然后使用KDE(vec)估计z的内核密度.输入必须具有形状(30,)或(30,N),其中30是尺寸KDE.d的数量.参见文档here.

用这些形状喂x,y没有任何意义.示例here应该可以帮助您入门.在该示例中,d = 2,n = 2000.

上一篇:python-集成控制系统无法正常运行


下一篇:java基础-关键词super与this