PyWavelets - Discrete Wavelet Transforms in Python
Python C C++ Other
Pull request Compare This branch is 1026 commits ahead, 1 commit behind nigma:master.
Latest commit 5cedd44 Feb 11, 2017 @rgommers rgommers committed on GitHub Merge pull request #282 from grlee77/appveyor_py36
BLD: add Python 3.6 to the Appveyor build matrix



What is PyWavelets

PyWavelets is a free Open Source library for wavelet transforms in Python. Wavelets are mathematical basis functions that are localized in both time and frequency. Wavelet transforms are time-frequency transforms employing wavelets. They are similar to Fourier transforms, the difference being that Fourier transforms are localized only in frequency instead of in time and frequency.

The main features of PyWavelets are:

  • 1D, 2D and nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT)
  • 1D, 2D and nD Multilevel DWT and IDWT
  • 1D and 2D Stationary Wavelet Transform (Undecimated Wavelet Transform)
  • 1D and 2D Wavelet Packet decomposition and reconstruction
  • 1D Continuous Wavelet Tranfsorm
  • Computing Approximations of wavelet and scaling functions
  • Over 100 built-in wavelet filters and support for custom wavelets
  • Single and double precision calculations
  • Real and complex calculations
  • Results compatible with Matlab Wavelet Toolbox (TM)


Documentation with detailed examples and links to more resources is available online at

For more usage examples see the demo directory in the source package.


PyWavelets supports Python 2.6, 2.7 or >=3.3, and is only dependent on Numpy (supported versions are currently >= 1.9). To pass all of the tests, Matplotlib is also required.

Binaries for Windows and OS X (wheels) on PyPi are in the works, however currently PyWavelets has to be installed from source. To do so, a working C compiler (any common one will work) and a recent version of Cython is required.

Binary packages for several Linux distributions can be found, but may be out of date. Query your Linux package manager tool for python-pywavelets, python-wavelets, python-pywt or a similar package name.

  • Install PyWavelets with pip install PyWavelets.
  • To build and install from source, navigate to the PyWavelets source code directory and type python install.

The most recent development version can be found on GitHub at

The latest release, including source and binary packages for Windows, is available for download from the Python Package Index or on the Releases Page.

State of development & Contributing

PyWavelets started in 2006 as an academic project for a master thesis on Analysis and Classification of Medical Signals using Wavelet Transforms and was maintained until 2012 by its original developer. In 2013 maintenance was taken over in a new repo) by a larger development team - a move supported by the original developer. The repo move doesn't mean that this is a fork - the package continues to be developed under the name "PyWavelets", and released on PyPi and Github (see this issue for the discussion where that was decided).

All contributions including bug reports, bug fixes, new feature implementations and documentation improvements are welcome. Moreover, developers with an interest in PyWavelets are very welcome to join the development team!


Use GitHub Issues or the mailing list to post your comments or questions.


PyWavelets is a free Open Source software released under the MIT license.