Я думаю, что вы путаете оценку плотности ядра с интерполяцией или, может быть, регрессией ядра.KDE оценивает распределение точек, если у вас большая выборка точек.
Я не уверен, какую интерполяцию вы хотите, но сплайны или rbf в scipy.interpolate будут более подходящими.
Если вам нужна одномерная регрессия ядра, вы можете найти версию в scikits.statsmodels с несколькими различными ядрами.
update: вот пример (если это то, что вам нужно)
>>> data = 2 + 2*np.random.randn(2, 100)
>>> kde = stats.gaussian_kde(data)
>>> kde.evaluate(np.array([[1,2,3],[1,2,3]]))
array([ 0.02573917, 0.02470436, 0.03084282])
В gaussian_kde есть переменные в строках и наблюдения в столбцах, поэтому ориентация полностью изменилась по сравнению с обычной в статистике.В вашем примере все три точки находятся на одной линии, поэтому она имеет идеальную корреляцию.Это, я думаю, причина для единственной матрицы.
Настройка ориентации массива и добавление небольшого шума, пример работает, но все еще выглядит очень концентрированным, например, у вас нет точки выборки рядом(3,3):
>>> data = np.array([[1.1, 1.1],
[1.2, 1.2],
[1.3, 1.3]]).T
>>> data = data + 0.01*np.random.randn(2,3)
>>> kde = stats.gaussian_kde(data)
>>> kde.evaluate(np.array([[1,2,3],[1,2,3]]))
array([ 7.70204299e+000, 1.96813149e-044, 1.45796523e-251])