public
Last active

Multidimensional Kernel Density Estimation in SciPy

  • Download Gist
kernel_density.py
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# -*- coding: utf-8 -*-
"""
Created on Sun Jun 19 20:32:51 2011
 
@author: endolith@gmail.com
"""
 
import numpy as np
import scipy.stats as stats
from matplotlib.pyplot import imshow
 
 
# Create some dummy data
rvs = np.append(stats.norm.rvs(loc=2,scale=1,size=(200,1)),
stats.norm.rvs(loc=1,scale=3,size=(200,1)),
axis=1)
 
kde = stats.kde.gaussian_kde(rvs.T)
 
# Regular grid to evaluate kde upon
x_flat = np.r_[rvs[:,0].min():rvs[:,0].max():128j]
y_flat = np.r_[rvs[:,1].min():rvs[:,1].max():128j]
x,y = np.meshgrid(x_flat,y_flat)
grid_coords = np.append(x.reshape(-1,1),y.reshape(-1,1),axis=1)
 
z = kde(grid_coords.T)
z = z.reshape(128,128)
 
scatter(rvs[:,0],rvs[:,1],alpha=0.5,color='white')
imshow(z,aspect=x_flat.ptp()/y_flat.ptp(),origin='lower',extent=(rvs[:,0].min(),rvs[:,0].max(),rvs[:,1].min(),rvs[:,1].max()))
readme.md
Markdown

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.