PyWavelets - Discrete Wavelet Transform in Python¶
PyWavelets is a free Open Source wavelet transform software for Python programming language. It is written in Python, Cython and C for a mix of easy and powerful high-level interface and the best performance.
PyWavelets is very easy to start with and use. 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 never before has 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 and 2D Stationary Wavelet Transform (Undecimated Wavelet Transform)
- 1D and 2D Wavelet Packet decomposition and reconstruction
- Approximating wavelet and scaling functions
- Over seventy built-in wavelet filters and custom wavelets supported
- Single and double precision calculations
- Results compatible with Matlab Wavelet Toolbox (TM)
Download¶
The most recent development version can be found on GitHub at https://github.com/PyWavelets/pywt.
Latest release, including source and binary package for Windows, is available for download from the Python Package Index or on the Releases Page.
Install¶
In order to build PyWavelets from source, a working C compiler (GCC or MSVC) and a recent version of Cython is required.
- Install PyWavelets with
pip install PyWavelets
.- To build and install from source, navigate to downloaded PyWavelets source code directory and type
python setup.py install
.
Prebuilt Windows binaries and source code packages are also available from Python Package Index.
Binary packages for several Linux distributors are maintained by Open Source community contributors. Query your Linux package manager tool for python-wavelets, python-pywt or similar package name.
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 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!
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.