Использование scipy.stats.gaussian_kde с двумерными данными

Я пытаюсь использовать класс scipy.stats.gaussian_kde класс для сглаживания некоторые дискретные данные, собранные с информацией о широте и долготе, так что в конечном итоге они выглядят как нечто похожее на контурную карту, где высокие плотности являются пиком, а низкие плотности - долиной.

Мне трудно помещение двумерного набора данных в класс gaussian_kde . Я поигрался, чтобы понять, как это работает с одномерными данными, поэтому я подумал, что 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])

, где говорится, что у меня есть 3 точки в [1.1, 1.1], [1.2, 1.2], [1.3, 1.3] . и я хочу получить оценку плотности ядра, используя от 1 до 3, используя ширину 1 по осям x и y.

При создании gaussian_kde он продолжает выдавать мне эту ошибку:

raise LinAlgError("singular matrix")
numpy.linalg.linalg.LinAlgError: singular matrix

Просмотр исходного кода ] gaussian_kde , я понимаю, что то, как я думаю о том, что означает набор данных, полностью отличается от того, как вычисляется размерность, но я не смог найти ни одного примера кода, показывающего, как многомерные данные работают с модулем. Может ли кто-нибудь помочь мне с некоторыми примерами способов использования gaussian_kde с многомерными данными?

7
задан OMG Ponies 25 May 2011 в 14:45
поделиться