Pywavelets

Latest version: v1.6.0

Safety actively analyzes 630094 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

1.2.0

We are very pleased to announce the release of PyWavelets 1.2.

This release has new discrete wavelet transforms features incleading a series of multiresolution analysis functions (details below).

PyWavelets has dropped support for Python 3.5 and 3.6 and now supports Python 3.7-3.10.

We also now provide aarch64 linux wheels as well as universal2 and arm64 wheels that are compatible with Apple's M1 processors.

New features
============

- There is a new series of multilevel stationary wavelet transforms (``mra``, ``mra2`` and ``mran``) suited for multiresolution analysis of 1D, 2D or nD signals, respectively. This MRA analysis is also known as the additive wavelet decomposition because the corresponding inverse functions (``imra``, ``imra2`` or ``imran``) reconstruct the original signal by simple addition of the components. These are a good alternative to the use of the existing SWT functions when it is important to have features aligned across wavelet scales (see the new demo in ``demo/mra_vs_swt.py``).

- There is now an n-dimensional implementation available for the wavelet packet transforms (see class `WaveletPacketND`).


Backwards incompatible changes
==============================

- The image returned by ``pywt.data.camera`` has been replaced by a similar, CC0-licensed image because the original image was determined to only be licensed for non-commercial use. Any users who still need the prior camera image for non-commercial use can find it many places online by performing a web search for "cameraman test image".

Bugs Fixed
==========

- Add input length check in `dwt_single` for reflect modes.
- Demos were updated for compatibility with recent Matplotlib versions.
- Removed deprecated import from ``imp``.

Other changes
=============

- PyWavelets has dropped support for Python 3.5 and 3.6 in this release.


Authors
=======

* ElConno +
* Ralf Gommers
* Gregory R. Lee
* Jakub Mandula +
* nperraud +
* ossdev07 +

A total of 6 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.

1.1.1

This release is functionally identical to 1.1.0.

This release modified `setup.py` to mark the package as Python 3.5+ only so `pip` will not try to install 1.1.1 on older Python versions. To prevent pip from trying to install 1.1.0 on older Python, the source tarball for 1.1.0 was removed from PyPI.

1.1.0

==============================

.. contents::

We are very pleased to announce the release of PyWavelets 1.1.

This release includes enhanced functionality for both the stationary wavelet
transforms (``swt``, ``swt2``, ``swtn``) as well as the continuous wavelet
transform (``cwt``). In addition, there are a handful of bug fixes as
described in more detail below.

This release has dropped Python 2.7 support and now requires Python >= 3.5.


In addition to these changes to the software itself, a paper describing
PyWavelets was recently published in The Journal of Open Source Software:
https://joss.theoj.org/papers/10.21105/joss.01237


New features
============

- All ``swt`` functions now have a new ``trim_approx`` option that can be used
to exclude the approximation coefficients from all but the final level of
decomposition. This mode makes the output of these functions consistent with
the format of the output from the corresponding ``wavedec`` functions.

- All ``swt`` functions also now have a new ``norm`` option that, when set to
``True`` and used in combination with ``trim_approx=True``, gives a partition
of variance across the transform coefficients. In other words, the sum of
the variances of all coefficients is equal to the variance of the original
data. This partitioning of variance makes the ``swt`` transform more similar
to the multiple-overlap DWT (MODWT) described in Percival and Walden's book,
"Wavelet Methods for Time Series Analysis". (476)

A demo of this new ``swt`` functionality is available at
https://github.com/PyWavelets/pywt/blob/master/demo/swt_variance.py

- The continuous wavelet transform (``cwt``) now offers an FFT-based
implementation in addition to the previous convolution based one. The new
``method`` argument can be set to either ``'conv'`` or ``'fft'`` to select
between these two implementations. (490).

- The ``cwt`` now also has ``axis`` support so that CWTs can be applied in
batch along any axis of an n-dimensional array. This enables faster batch
transformation of signals. (509)


Backwards incompatible changes
==============================

- When the input to ``cwt`` is single precision, the computations are now
performed in single precision. This was done both for efficiency and to make
``cwt`` handle dtypes consistently with the discrete transforms in
PyWavelets. This is a change from the prior behaviour of always performing
the ``cwt`` in double precision. (507)

- When using complex-valued wavelets with the ``cwt``, the output will now be
the complex conjugate of the result that was produced by PyWavelets 1.0.x.
This was done to account for a bug described below. The magnitude of the
``cwt`` coefficients will still match those from previous releases. (439)


Bugs Fixed
==========

- For a ``cwt`` with complex wavelets, the results in PyWavelets 1.0.x releases
matched the output of Matlab R2012a's ``cwt``. Howveer, older Matlab releases
like R2012a had a phase that was of opposite sign to that given in textbook
definitions of the CWT (Eq. 2 of Torrence and Compo's review article, "A
Practical Guide to Wavelet Analysis"). Consequently, the wavelet coefficients
were the complex conjugates of the expected result. This was validated by
comparing the results of a transform using ``cmor1.0-1.0`` as compared to the
``cwt`` implementation available in Matlab R2017b as well as the function
``wt.m`` from the Lancaster University Physics department's
`MODA toolbox <https://github.com/luphysics/MODA>`_. (#439)

- For some boundary modes and data sizes, round-trip ``dwt``/``idwt`` can
result in an output that has one additional coefficient. Prior to this
relese, this could cause a failure during ``WaveletPacket`` or
``WaveletPacket2D`` reconstruction. These wavelet packet transforms have now
been fixed and round-trip wavelet packet transforms always preserve the
original data shape. (448)

- All inverse transforms now handle mixed precision coefficients consistently.
Prior to this release some inverse transform raised an error upon
encountering mixed precision dtypes in the wavelet subbands. In release 1.1,
when the user-provided coefficients are a mixture of single and double
precision, all coefficients will be promoted to double precision. (450)

- A bug that caused a failure for ``iswtn`` when using user-provided ``axes``
with non-uniform shape along the transformed axes has been fixed. (462)

Other changes
=============

- The PyWavelet test suite now uses ``pytest`` rather than ``nose``. (477)

- Cython code has been updated to use ``language_level=3``. (435)

- PyWavelets has adopted the SciPy Code of Conduct. (521)

1.0.3

PyWavelets 1.0.3 is functionally equivalent to the 1.0.2 release. It was made to archive the JOSS paper about PyWavelets to the 1.0.x branch and serve as a reference corresponding to the version that was peer reviewed.

1.0.2

compared to 1.0.1.

Bugs Fixed
==========

A bug in `iswtn` when using some combinations of user-specified axes was fixed.

A potential error related to coefficient shape mismatch during WaveletPacket
or WaveletPacket2D reconstruction was fixed.

Other Changes
=============

A deprecated import of ``Iterable`` was fixed.

The spelling of "Garrote" was fixed in the wavelet thresholding documentation. For backwards compatibility with 1.0.0, the incorrect ("garotte") spelling is also accepted for the ``mode`` parameter of ``pywt.threshold``.

The spelling of "supported" was fixed in one of the ValueError messages that can be returned by ``pywt.cwt``.

Cython language compatibility has been pinned to ``language_level = '2'``. This is in contrast to the `master` branch which is now using ``language_level = '3'``. To support this, the minimum supported Cython version
has been raised to 0.23.5.

1.0.1

PyWavelets 1.0.1 is a bug-fix release with no new features compared to 1.0.0.


Bugs Fixed
==========

Key-based assignment of coefficients to a ``FswavedecnResult`` object (i.e. via
its __setitem__ method) has been fixed.

The order that the individual subband coefficients were stacked by the
function ``pywt.ravel_coeffs`` is now guaranteed to be consistent across all
supported Python versions. Explicit alphabetic ordering of subband coefficient
names is used for consitent ordering regardless of Python version.

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.