我試圖使用the scipy.stats.gaussian_kde
class來平滑掉一些用緯度和經度信息收集的離散數據,所以它在最後顯示爲與等高線圖有些類似,高密度是高峯,低密度是低谷。使用帶有二維數據的scipy.stats.gaussian_kde
我很難將二維數據集放入gaussian_kde
類。我打得四處弄清楚它是如何工作的1個維數據,所以我想沿着線的2維會是這樣:
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])
這是說,我在[1.1, 1.1], [1.2, 1.2], [1.3, 1.3]
有3點。我想要使用從1到3的寬度爲1的x和y軸進行核密度估計。
在創建gaussian_kde,它不斷給我這個錯誤:
raise LinAlgError("singular matrix")
numpy.linalg.linalg.LinAlgError: singular matrix
展望的gaussian_kde
的源代碼,我意識到,我在想是什麼意思數據集的方式是怎麼樣完全不同的維度是計算的,但我找不到任何示例代碼顯示多維數據如何與模塊一起工作。有人可以幫助我用一些示例方法使用gaussian_kde
與多維數據?
嘗試使用不是全部在一行中的數據。我不確定它是否會失敗,或者如果它是一個錯誤。 – endolith 2011-06-20 02:35:15