PyWavelets - Wavelet Transforms in Python

PyWavelets is free and Open Source wavelet transform software for the Python programming language. It combines a simple high level interface with low level C and Cython performance.

PyWavelets is very easy to use and get started with. Just install the package, open the Python interactive shell and type:

>>> import pywt
>>> cA, cD = pywt.dwt([1, 2, 3, 4], 'db1')

Voilà! Computing wavelet transforms has never been so simple :)

Main features

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 Transform
  • 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)

Requirements

PyWavelets is a package for the Python programming language. It requires:

Download

The most recent development version can be found on GitHub at https://github.com/PyWavelets/pywt.

The latest release, including source and binary packages for Intel Linux, macOS and Windows, is available for download from the Python Package Index. You can find source releases at the Releases Page.

Install

There are binary wheels for Intel Linux, Windows and macOS / OSX on PyPi. If you are on one of these platforms, you should get a binary (precompiled) installation with:

pip install PyWavelets

Users of the Anaconda Python distribution may wish to obtain pre-built Windows, Intel Linux or macOS / OSX binaries from the default channel. This can be done via:

conda install pywavelets

Several Linux distributions have their own packages for PyWavelets, but these tend to be moderately out of date. Query your Linux package manager tool for python-pywavelets, python-wavelets, python-pywt or a similar package name.

If you want or need to install from source, you will need a working C compiler (any common one will work) and a recent version of Cython. Navigate to the PyWavelets source code directory (containing setup.py) and type:

pip install .

To run all the tests for PyWavelets, you will also need to install the Matplotlib package.

The most recent development version can be found on GitHub at https://github.com/PyWavelets/pywt.

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

See also

Development notes section contains more information on building and installing from source code.

Documentation

Documentation with detailed examples and links to more resources is available online at http://pywavelets.readthedocs.org.

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

State of development & Contributing

PyWavelets started in 2006 as an academic project for a masters 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!

Python 3

Python 3.x is fully supported from release v0.3.0 on.

Contact

Use GitHub Issues or the PyWavelets discussions group to post your comments or questions.

License

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