Python SuperSmoother

This is an efficient implementation of Friedman's SuperSmoother [1] algorithm in pure Python. It makes use of numpy for fast numerical computation.

DOI version status build status license


Installation is simple: To install the released version, type

$ pip install supersmoother

To install the bleeding-edge source, download the source code from and type:

$ python install

The only package dependency is numpy; scipy is also required if you want to run the unit tests.


The package includes several example notebooks showing the code in action. You can see these in the examples/ directory, or view them statically on nbviewer


This code has full unit tests implemented in nose. With nose installed, you can run the test suite using

$ nosetests supersmoother

The package is tested with Python versions 2.7, 3.4, 3.5, and 3.6.


supersmoother was created by Jake VanderPlas

Citing This Work

If you use this code in an academic publication, please consider including a citation to our work. Citation information in a variety of formats can be found on zenodo.


[1] Friedman, J. H. (1984) A variable span scatterplot smoother. Laboratory for Computational Statistics, Stanford University Technical Report No. 5. (pdf)