several new features, some changes and deprecations have been made to streamline
the API.
This release requires Python 2.6, 2.7 or 3.3-3.5 and NumPy 1.6.2 or greater.
Highlights of this release include:
- 1D and 2D inverse stationary wavelet transforms
- Substantially faster 2D and nD discrete wavelet transforms
- Complex number support
- nD versions of the multilevel DWT and IDWT
New features
1D and 2D inverse stationary wavelet transforms
1D (`iswt`) and 2D (`iswt2`) inverse stationary wavelet transforms were
added. These currently only support even length inputs.
Faster 2D and nD wavelet transforms
The multidimensional DWT and IDWT code was refactored and is now an order of
magnitude faster than in previous releases. The following functions benefit:
`dwt2`, `idwt2`, `dwtn`, `idwtn`.
Complex floating point support
64 and 128-bit complex data types are now supported by all wavelet transforms.
nD implementation of the multilevel DWT and IDWT
The existing 1D and 2D multilevel transforms were supplemented with an nD
implementation.
Wavelet transforms can be applied along a specific axis/axes
All wavelet transform functions now support explicit specification of the axis
or axes upon which to perform the transform.
Example Datasets
Two additional 2D grayscale images were added (`camera`, `ascent`). The
previously existing 1D ECG data (`ecg`) and the 2D aerial image (`aero`)
used in the demos can also now be imported via functions defined in
`pywt.data` (e.g. `camera = pywt.data.camera()`)
Deprecated features
A number of functions have been renamed, the old names are deprecated and will
be removed in a future release:
- `intwave`, renamed to `integrate_wavelet`
- `centrfrq`, renamed to `central_frequency`
- `scal2frq`, renamed to `scale2frequency`
- `orthfilt`, renamed to `orthogonal_filter_bank`
Integration of general signals (i.e. not wavelets) with `integrate_wavelet`
is deprecated.
The `MODES` object and its attributes are deprecated. The new name is
`Modes`, and the attribute names are expanded:
- `zpd`, renamed to `zero`
- `cpd`, renamed to `constant`
- `sp1`, renamed to `smooth`
- `sym`, renamed to `symmetric`
- `ppd`, renamed to `periodic`
- `per`, renamed to `periodization`
Backwards incompatible changes
`idwt` no longer takes a `correct_size` parameter. As a consequence,
`idwt2` inputs must match exactly in length. For multilevel transforms, where
arrays differing in size by one element may be produced, use the `waverec`
functions from the `multilevel` module instead.
Bugs Fixed
float32 inputs were not always respected. All transforms now return float32
outputs when called using float32 inputs.
Incorrect detail coefficients were returned by `downcoef` when `level > 1`.
Other changes
Much of the API documentation is now autogenerated from the corresponding
function docstrings. The numpydoc sphinx extension is now needed to build the
documentation.
Authors
- Thomas Arildsen +
- François Boulogne
- Ralf Gommers
- Gregory R. Lee
- Michael Marino +
- Aaron O'Leary +
- Daniele Tricoli +
- Kai Wohlfahrt
A total of 8 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.
Issues closed in this release: see [here](https://github.com/PyWavelets/pywt/issues?q=is%3Aissue+is%3Aclosed+milestone%3Av0.4.0)
Pull requests merged in this release: see [here](https://github.com/PyWavelets/pywt/pulls?q=is%3Apr+is%3Aclosed+milestone%3Av0.4.0)