Porting popular R library KernSmooth to python.
Functions for Kernel Smoothing and Density Estimation.
Transformed R and Fortran functions into Python(2,3) code.
Attention:
Please use kern-smooth 1.1.0 or newer. Reason: found not needed log10 density transformation.
Installation:
pip install kern-smooth
Main function of the module:
def densCols(x, y=None, nbin=128, bandwidth=None)
Produces a vector of numbers which encode the local densities at each point in dataset.
x, y : 1D numpy array with coordinates of the points density will be estimated on
- nbin[optional] int or [int, int] - number of bins along each axis
(in case of single value - [nbin, nbin] will be used). Default value 128.
bandwidth : [optional] numeric vector (len of 1 or 2) of smoothing bandwidth.
Returns: numpy array with numerical representation (in range [0,1]) of point densities.
Attention: For return value numpy.nan values are allowed in case of nan / infinite values in original dataset
Source: R::grDevices::densCols
Usage
Generate data for plotting (make sure Matplotlib is installed)
from matplotlib import pyplot as plt
from matplotlib import cm
import numpy as np
np.random.seed(0)
# create two 'bulbs' with normal distributions
mean1 = [0, 0]
cov1 = [[5, 0], [0, 30]] # diagonal covariance
x1, y1 = np.random.multivariate_normal(mean1, cov1, 50000).T
mean2 = [5, 17]
cov2 = [[30, 0], [0, 5]] # diagonal covariance
x2, y2 = np.random.multivariate_normal(mean2, cov2, 50000).T
x = np.hstack([x1,x2])
y = np.hstack([y1,y2])
Generate point densities:
from kern_smooth import densCols
densities = densCols(x, y, nbin = 128)
Plot the result
sc = plt.scatter(x, y, c=densities, s=15, edgecolors='none', alpha=0.75, cmap=cm.jet)
plt.colorbar(sc)
plt.show()
Result

Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file kern-smooth-1.2.3.tar.gz.
File metadata
- Download URL: kern-smooth-1.2.3.tar.gz
- Upload date:
- Size: 295.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8eed9ee2a26352593fea4814bc9509dced9e9c26c049cfce190d5c1a0a16c2c
|
|
| MD5 |
d0b4de17c293957291e20093eca8d909
|
|
| BLAKE2b-256 |
bcd0d61b3eae81a033a4c1a37537fcac2419afd59549ee7deabc147cf5351a31
|