我正在尝试使用the scipy.stats.gaussian_kde class把一些离散的经纬度信息采集到的数据进行平滑处理,所以最后看起来有点像等高线图,密度高的就是峰,密度低的就是谷。
我很难将二维数据集放入gaussian_kde
班级。我已经尝试弄清楚它如何处理一维数据,所以我认为二维数据应该是这样的:
from scipy import stats
from numpy import array
data = array([[1.1, 1.1],
[1.2, 1.2],
[1.3, 1.3]])
kde = stats.gaussian_kde(data)
kde.evaluate([1,2,3],[1,2,3])
也就是说我有 3 分[1.1, 1.1], [1.2, 1.2], [1.3, 1.3]
。我想使用 1 到 3 进行核密度估计,在 x 和 y 轴上使用宽度 1。
创建 gaussian_kde 时,它一直给我这个错误:
raise LinAlgError("singular matrix")
numpy.linalg.linalg.LinAlgError: singular matrix
查看源代码gaussian_kde
,我意识到我思考数据集含义的方式与计算维度的方式完全不同,但我找不到任何示例代码来显示多维数据如何与模块配合使用。有人可以帮我提供一些示例使用方法吗gaussian_kde
多维数据?