Changelog
### 1.6.0
```
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with ``python -Wd`` and check for ``DeprecationWarning`` s).
Our development attention will now shift to bug-fix releases on the
1.6.x branch, and on adding new features on the master branch.
This release requires Python `3.7`+ and NumPy `1.16.5` or greater.
For running on PyPy, PyPy3 `6.0`+ is required.
Highlights of this release
----------------------------
- `scipy.ndimage` improvements: Fixes and ehancements to boundary extension
modes for interpolation functions. Support for complex-valued inputs in many
filtering and interpolation functions. New ``grid_mode`` option for
`scipy.ndimage.zoom` to enable results consistent with scikit-image's
``rescale``.
- `scipy.optimize.linprog` has fast, new methods for large, sparse problems
from the ``HiGHS`` library.
- `scipy.stats` improvements including new distributions, a new test, and
enhancements to existing distributions and tests
New features
============
`scipy.special` improvements
-----------------------------
`scipy.special` now has improved support for 64-bit ``LAPACK`` backend
`scipy.odr` improvements
-------------------------
`scipy.odr` now has support for 64-bit integer ``BLAS``
`scipy.odr.ODR` has gained an optional ``overwrite`` argument so that existing
files may be overwritten.
`scipy.integrate` improvements
-------------------------------
Some renames of functions with poor names were done, with the old names
retained without being in the reference guide for backwards compatibility
reasons:
- ``integrate.simps`` was renamed to ``integrate.simpson``
- ``integrate.trapz`` was renamed to ``integrate.trapezoid``
- ``integrate.cumtrapz`` was renamed to ``integrate.cumulative_trapezoid``
`scipy.cluster` improvements
-------------------------------
`scipy.cluster.hierarchy.DisjointSet` has been added for incremental
connectivity queries.
`scipy.cluster.hierarchy.dendrogram` return value now also includes leaf color
information in `leaves_color_list`.
`scipy.interpolate` improvements
---------------------------------
`scipy.interpolate.interp1d` has a new method ``nearest-up``, similar to the
existing method ``nearest`` but rounds half-integers up instead of down.
`scipy.io` improvements
------------------------
Support has been added for reading arbitrary bit depth integer PCM WAV files
from 1- to 32-bit, including the commonly-requested 24-bit depth.
`scipy.linalg` improvements
----------------------------
The new function `scipy.linalg.matmul_toeplitz` uses the FFT to compute the
product of a Toeplitz matrix with another matrix.
`scipy.linalg.sqrtm` and `scipy.linalg.logm` have performance improvements
thanks to additional Cython code.
Python ``LAPACK`` wrappers have been added for ``pptrf``, ``pptrs``, ``ppsv``,
``pptri``, and ``ppcon``.
`scipy.linalg.norm` and the ``svd`` family of functions will now use 64-bit
integer backends when available.
`scipy.ndimage` improvements
-----------------------------
`scipy.ndimage.convolve`, `scipy.ndimage.correlate` and their 1d counterparts
now accept both complex-valued images and/or complex-valued filter kernels. All
convolution-based filters also now accept complex-valued inputs
(e.g. ``gaussian_filter``, ``uniform_filter``, etc.).
Multiple fixes and enhancements to boundary handling were introduced to
`scipy.ndimage` interpolation functions (i.e. ``affine_transform``,
``geometric_transform``, ``map_coordinates``, ``rotate``, ``shift``, ``zoom``).
A new boundary mode, ``grid-wrap`` was added which wraps images periodically,
using a period equal to the shape of the input image grid. This is in contrast
to the existing ``wrap`` mode which uses a period that is one sample smaller
than the original signal extent along each dimension.
A long-standing bug in the ``reflect`` boundary condition has been fixed and
the mode ``grid-mirror`` was introduced as a synonym for ``reflect``.
A new boundary mode, ``grid-constant`` is now available. This is similar to
the existing ndimage ``constant`` mode, but interpolation will still performed
at coordinate values outside of the original image extent. This
``grid-constant`` mode is consistent with OpenCV's ``BORDER_CONSTANT`` mode
and scikit-image's ``constant`` mode.
Spline pre-filtering (used internally by ``ndimage`` interpolation functions
when ``order >= 2``), now supports all boundary modes rather than always
defaulting to mirror boundary conditions. The standalone functions
``spline_filter`` and ``spline_filter1d`` have analytical boundary conditions
that match modes ``mirror``, ``grid-wrap`` and ``reflect``.
`scipy.ndimage` interpolation functions now accept complex-valued inputs. In
this case, the interpolation is applied independently to the real and
imaginary components.
The ``ndimage`` tutorials
(https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html) have been
updated with new figures to better clarify the exact behavior of all of the
interpolation boundary modes.
`scipy.ndimage.zoom` now has a ``grid_mode`` option that changes the coordinate
of the center of the first pixel along an axis from 0 to 0.5. This allows
resizing in a manner that is consistent with the behavior of scikit-image's
``resize`` and ``rescale`` functions (and OpenCV's ``cv2.resize``).
`scipy.optimize` improvements
------------------------------
`scipy.optimize.linprog` has fast, new methods for large, sparse problems from
the ``HiGHS`` C++ library. ``method='highs-ds'`` uses a high performance dual
revised simplex implementation (HSOL), ``method='highs-ipm'`` uses an
interior-point method with crossover, and ``method='highs'`` chooses between
the two automatically. These methods are typically much faster and often exceed
the accuracy of other ``linprog`` methods, so we recommend explicitly
specifying one of these three method values when using ``linprog``.
`scipy.optimize.quadratic_assignment` has been added for approximate solution
of the quadratic assignment problem.
`scipy.optimize.linear_sum_assignment` now has a substantially reduced overhead
for small cost matrix sizes
`scipy.optimize.least_squares` has improved performance when the user provides
the jacobian as a sparse jacobian already in ``csr_matrix`` format
`scipy.optimize.linprog` now has an ``rr_method`` argument for specification
of the method used for redundancy handling, and a new method for this purpose
is available based on the interpolative decomposition approach.
`scipy.signal` improvements
----------------------------
`scipy.signal.gammatone` has been added to design FIR or IIR filters that
model the human auditory system.
`scipy.signal.iircomb` has been added to design IIR peaking/notching comb
filters that can boost/attenuate a frequency from a signal.
`scipy.signal.sosfilt` performance has been improved to avoid some previously-
observed slowdowns
`scipy.signal.windows.taylor` has been added--the Taylor window function is
commonly used in radar digital signal processing
`scipy.signal.gauss_spline` now supports ``list`` type input for consistency
with other related SciPy functions
`scipy.signal.correlation_lags` has been added to allow calculation of the lag/
displacement indices array for 1D cross-correlation.
`scipy.sparse` improvements
----------------------------
A solver for the minimum weight full matching problem for bipartite graphs,
also known as the linear assignment problem, has been added in
`scipy.sparse.csgraph.min_weight_full_bipartite_matching`. In particular, this
provides functionality analogous to that of
`scipy.optimize.linear_sum_assignment`, but with improved performance for sparse
inputs, and the ability to handle inputs whose dense representations would not
fit in memory.
The time complexity of `scipy.sparse.block_diag` has been improved dramatically
from quadratic to linear.
`scipy.sparse.linalg` improvements
-----------------------------------
The vendored version of ``SuperLU`` has been updated
`scipy.fft` improvements
-------------------------
The vendored ``pocketfft`` library now supports compiling with ARM neon vector
extensions and has improved thread pool behavior.
`scipy.spatial` improvements
-----------------------------
The python implementation of ``KDTree`` has been dropped and ``KDTree`` is now
implemented in terms of ``cKDTree``. You can now expect ``cKDTree``-like
performance by default. This also means ``sys.setrecursionlimit`` no longer
needs to be increased for querying large trees.
``transform.Rotation`` has been updated with support for Modified Rodrigues
Parameters alongside the existing rotation representations (PR gh-12667).
`scipy.spatial.transform.Rotation` has been partially cythonized, with some
performance improvements observed
`scipy.spatial.distance.cdist` has improved performance with the ``minkowski``
metric, especially for p-norm values of 1 or 2.
`scipy.stats` improvements
---------------------------
New distributions have been added to `scipy.stats`:
- The asymmetric Laplace continuous distribution has been added as
`scipy.stats.laplace_asymmetric`.
- The negative hypergeometric distribution has been added as `scipy.stats.nhypergeom`.
- The multivariate t distribution has been added as `scipy.stats.multivariate_t`.
- The multivariate hypergeometric distribution has been added as `scipy.stats.multivariate_hypergeom`.
The ``fit`` method has been overridden for several distributions (``laplace``,
``pareto``, ``rayleigh``, ``invgauss``, ``logistic``, ``gumbel_l``,
``gumbel_r``); they now use analytical, distribution-specific maximum
likelihood estimation results for greater speed and accuracy than the generic
(numerical optimization) implementation.
The one-sample Cramér-von Mises test has been added as
`scipy.stats.cramervonmises`.
An option to compute one-sided p-values was added to `scipy.stats.ttest_1samp`,
`scipy.stats.ttest_ind_from_stats`, `scipy.stats.ttest_ind` and
`scipy.stats.ttest_rel`.
The function `scipy.stats.kendalltau` now has an option to compute Kendall's
tau-c (also known as Stuart's tau-c), and support has been added for exact
p-value calculations for sample sizes ``> 171``.
`stats.trapz` was renamed to `stats.trapezoid`, with the former name retained
as an alias for backwards compatibility reasons.
The function `scipy.stats.linregress` now includes the standard error of the
intercept in its return value.
The ``_logpdf``, ``_sf``, and ``_isf`` methods have been added to
`scipy.stats.nakagami`; ``_sf`` and ``_isf`` methods also added to
`scipy.stats.gumbel_r`
The ``sf`` method has been added to `scipy.stats.levy` and `scipy.stats.levy_l`
for improved precision.
`scipy.stats.binned_statistic_dd` performance improvements for the following
computed statistics: ``max``, ``min``, ``median``, and ``std``.
We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source
Software for Science program for supporting many of these improvements to
`scipy.stats`.
Deprecated features
===================
`scipy.spatial` changes
------------------------
Calling ``KDTree.query`` with ``k=None`` to find all neighbours is deprecated.
Use ``KDTree.query_ball_point`` instead.
``distance.wminkowski`` was deprecated; use ``distance.minkowski`` and supply
weights with the ``w`` keyword instead.
Backwards incompatible changes
==============================
`scipy` changes
----------------
Using `scipy.fft` as a function aliasing ``numpy.fft.fft`` was removed after
being deprecated in SciPy ``1.4.0``. As a result, the `scipy.fft` submodule
must be explicitly imported now, in line with other SciPy subpackages.
`scipy.signal` changes
-----------------------
The output of ``decimate``, ``lfilter_zi``, ``lfiltic``, ``sos2tf``, and
``sosfilt_zi`` have been changed to match ``numpy.result_type`` of their inputs.
The window function ``slepian`` was removed. It had been deprecated since SciPy
``1.1``.
`scipy.spatial` changes
------------------------
``cKDTree.query`` now returns 64-bit rather than 32-bit integers on Windows,
making behaviour consistent between platforms (PR gh-12673).
`scipy.stats` changes
----------------------
The ``frechet_l`` and ``frechet_r`` distributions were removed. They were
deprecated since SciPy ``1.0``.
Other changes
=============
``setup_requires`` was removed from ``setup.py``. This means that users
invoking ``python setup.py install`` without having numpy already installed
will now get an error, rather than having numpy installed for them via
``easy_install``. This install method was always fragile and problematic, users
are encouraged to use ``pip`` when installing from source.
- Fixed a bug in `scipy.optimize.dual_annealing` ``accept_reject`` calculation
that caused uphill jumps to be accepted less frequently.
- The time required for (un)pickling of `scipy.stats.rv_continuous`,
`scipy.stats.rv_discrete`, and `scipy.stats.rv_frozen` has been significantly
reduced (gh12550). Inheriting subclasses should note that ``__setstate__`` no
longer calls ``__init__`` upon unpickling.
Authors
=======
* endolith
* vkk800
* aditya +
* George Bateman +
* Christoph Baumgarten
* Peter Bell
* Tobias Biester +
* Keaton J. Burns +
* Evgeni Burovski
* Rüdiger Busche +
* Matthias Bussonnier
* Dominic C +
* Corallus Caninus +
* CJ Carey
* Thomas A Caswell
* chapochn +
* Lucía Cheung
* Zach Colbert +
* Coloquinte +
* Yannick Copin +
* Devin Crowley +
* Terry Davis +
* Michaël Defferrard +
* devonwp +
* Didier +
* divenex +
* Thomas Duvernay +
* Eoghan O'Connell +
* Gökçen Eraslan
* Kristian Eschenburg +
* Ralf Gommers
* Thomas Grainger +
* GreatV +
* Gregory Gundersen +
* h-vetinari +
* Matt Haberland
* Mark Harfouche +
* He He +
* Alex Henrie
* Chun-Ming Huang +
* Martin James McHugh III +
* Alex Izvorski +
* Joey +
* ST John +
* Jonas Jonker +
* Julius Bier Kirkegaard
* Marcin Konowalczyk +
* Konrad0
* Sam Van Kooten +
* Sergey Koposov +
* Peter Mahler Larsen
* Eric Larson
* Antony Lee
* Gregory R. Lee
* Loïc Estève
* Jean-Luc Margot +
* MarkusKoebis +
* Nikolay Mayorov
* G. D. McBain
* Andrew McCluskey +
* Nicholas McKibben
* Sturla Molden
* Denali Molitor +
* Eric Moore
* Shashaank N +
* Prashanth Nadukandi +
* nbelakovski +
* Andrew Nelson
* Nick +
* Nikola Forró +
* odidev
* ofirr +
* Sambit Panda
* Dima Pasechnik
* Tirth Patel +
* Paweł Redzyński +
* Vladimir Philipenko +
* Philipp Thölke +
* Ilhan Polat
* Eugene Prilepin +
* Vladyslav Rachek
* Ram Rachum +
* Tyler Reddy
* Martin Reinecke +
* Simon Segerblom Rex +
* Lucas Roberts
* Benjamin Rowell +
* Eli Rykoff +
* Atsushi Sakai
* Moritz Schulte +
* Daniel B. Smith
* Steve Smith +
* Jan Soedingrekso +
* Victor Stinner +
* Jose Storopoli +
* Diana Sukhoverkhova +
* Søren Fuglede Jørgensen
* taoky +
* Mike Taves +
* Ian Thomas +
* Will Tirone +
* Frank Torres +
* Seth Troisi
* Ronald van Elburg +
* Hugo van Kemenade
* Paul van Mulbregt
* Saul Ivan Rivas Vega +
* Pauli Virtanen
* Jan Vleeshouwers
* Samuel Wallan
* Warren Weckesser
* Ben West +
* Eric Wieser
* WillTirone +
* Levi John Wolf +
* Zhiqing Xiao
* Rory Yorke +
* Yun Wang (Maigo) +
* Egor Zemlyanoy +
* ZhihuiChen0903 +
* Jacob Zhong +
A total of 121 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.5.4
```
compared to `1.5.3`. Importantly, wheels are now available
for Python `3.9` and a more complete fix has been applied for
issues building with XCode `12`.
Authors
=====
* Peter Bell
* CJ Carey
* Andrew McCluskey +
* Andrew Nelson
* Tyler Reddy
* Eli Rykoff +
* Ian Thomas +
A total of 7 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.5.3
```
compared to `1.5.2`. In particular, Linux ARM64 wheels are now
available and a compatibility issue with XCode 12 has
been fixed.
Authors
=======
* Peter Bell
* CJ Carey
* Thomas Duvernay +
* Gregory Lee
* Eric Moore
* odidev
* Dima Pasechnik
* Tyler Reddy
* Simon Segerblom Rex +
* Daniel B. Smith
* Will Tirone +
* Warren Weckesser
A total of 12 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.
```
Links
- PyPI: https://pypi.org/project/scipy
- Changelog: https://pyup.io/changelogs/scipy/
- Repo: https://github.com/scipy/scipy/releases
- Homepage: https://www.scipy.org
This PR updates scipy from 1.5.2 to 1.6.0.
Changelog
### 1.6.0 ``` many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Before upgrading, we recommend that users check that their own code does not use deprecated SciPy functionality (to do so, run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). Our development attention will now shift to bug-fix releases on the 1.6.x branch, and on adding new features on the master branch. This release requires Python `3.7`+ and NumPy `1.16.5` or greater. For running on PyPy, PyPy3 `6.0`+ is required. Highlights of this release ---------------------------- - `scipy.ndimage` improvements: Fixes and ehancements to boundary extension modes for interpolation functions. Support for complex-valued inputs in many filtering and interpolation functions. New ``grid_mode`` option for `scipy.ndimage.zoom` to enable results consistent with scikit-image's ``rescale``. - `scipy.optimize.linprog` has fast, new methods for large, sparse problems from the ``HiGHS`` library. - `scipy.stats` improvements including new distributions, a new test, and enhancements to existing distributions and tests New features ============ `scipy.special` improvements ----------------------------- `scipy.special` now has improved support for 64-bit ``LAPACK`` backend `scipy.odr` improvements ------------------------- `scipy.odr` now has support for 64-bit integer ``BLAS`` `scipy.odr.ODR` has gained an optional ``overwrite`` argument so that existing files may be overwritten. `scipy.integrate` improvements ------------------------------- Some renames of functions with poor names were done, with the old names retained without being in the reference guide for backwards compatibility reasons: - ``integrate.simps`` was renamed to ``integrate.simpson`` - ``integrate.trapz`` was renamed to ``integrate.trapezoid`` - ``integrate.cumtrapz`` was renamed to ``integrate.cumulative_trapezoid`` `scipy.cluster` improvements ------------------------------- `scipy.cluster.hierarchy.DisjointSet` has been added for incremental connectivity queries. `scipy.cluster.hierarchy.dendrogram` return value now also includes leaf color information in `leaves_color_list`. `scipy.interpolate` improvements --------------------------------- `scipy.interpolate.interp1d` has a new method ``nearest-up``, similar to the existing method ``nearest`` but rounds half-integers up instead of down. `scipy.io` improvements ------------------------ Support has been added for reading arbitrary bit depth integer PCM WAV files from 1- to 32-bit, including the commonly-requested 24-bit depth. `scipy.linalg` improvements ---------------------------- The new function `scipy.linalg.matmul_toeplitz` uses the FFT to compute the product of a Toeplitz matrix with another matrix. `scipy.linalg.sqrtm` and `scipy.linalg.logm` have performance improvements thanks to additional Cython code. Python ``LAPACK`` wrappers have been added for ``pptrf``, ``pptrs``, ``ppsv``, ``pptri``, and ``ppcon``. `scipy.linalg.norm` and the ``svd`` family of functions will now use 64-bit integer backends when available. `scipy.ndimage` improvements ----------------------------- `scipy.ndimage.convolve`, `scipy.ndimage.correlate` and their 1d counterparts now accept both complex-valued images and/or complex-valued filter kernels. All convolution-based filters also now accept complex-valued inputs (e.g. ``gaussian_filter``, ``uniform_filter``, etc.). Multiple fixes and enhancements to boundary handling were introduced to `scipy.ndimage` interpolation functions (i.e. ``affine_transform``, ``geometric_transform``, ``map_coordinates``, ``rotate``, ``shift``, ``zoom``). A new boundary mode, ``grid-wrap`` was added which wraps images periodically, using a period equal to the shape of the input image grid. This is in contrast to the existing ``wrap`` mode which uses a period that is one sample smaller than the original signal extent along each dimension. A long-standing bug in the ``reflect`` boundary condition has been fixed and the mode ``grid-mirror`` was introduced as a synonym for ``reflect``. A new boundary mode, ``grid-constant`` is now available. This is similar to the existing ndimage ``constant`` mode, but interpolation will still performed at coordinate values outside of the original image extent. This ``grid-constant`` mode is consistent with OpenCV's ``BORDER_CONSTANT`` mode and scikit-image's ``constant`` mode. Spline pre-filtering (used internally by ``ndimage`` interpolation functions when ``order >= 2``), now supports all boundary modes rather than always defaulting to mirror boundary conditions. The standalone functions ``spline_filter`` and ``spline_filter1d`` have analytical boundary conditions that match modes ``mirror``, ``grid-wrap`` and ``reflect``. `scipy.ndimage` interpolation functions now accept complex-valued inputs. In this case, the interpolation is applied independently to the real and imaginary components. The ``ndimage`` tutorials (https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html) have been updated with new figures to better clarify the exact behavior of all of the interpolation boundary modes. `scipy.ndimage.zoom` now has a ``grid_mode`` option that changes the coordinate of the center of the first pixel along an axis from 0 to 0.5. This allows resizing in a manner that is consistent with the behavior of scikit-image's ``resize`` and ``rescale`` functions (and OpenCV's ``cv2.resize``). `scipy.optimize` improvements ------------------------------ `scipy.optimize.linprog` has fast, new methods for large, sparse problems from the ``HiGHS`` C++ library. ``method='highs-ds'`` uses a high performance dual revised simplex implementation (HSOL), ``method='highs-ipm'`` uses an interior-point method with crossover, and ``method='highs'`` chooses between the two automatically. These methods are typically much faster and often exceed the accuracy of other ``linprog`` methods, so we recommend explicitly specifying one of these three method values when using ``linprog``. `scipy.optimize.quadratic_assignment` has been added for approximate solution of the quadratic assignment problem. `scipy.optimize.linear_sum_assignment` now has a substantially reduced overhead for small cost matrix sizes `scipy.optimize.least_squares` has improved performance when the user provides the jacobian as a sparse jacobian already in ``csr_matrix`` format `scipy.optimize.linprog` now has an ``rr_method`` argument for specification of the method used for redundancy handling, and a new method for this purpose is available based on the interpolative decomposition approach. `scipy.signal` improvements ---------------------------- `scipy.signal.gammatone` has been added to design FIR or IIR filters that model the human auditory system. `scipy.signal.iircomb` has been added to design IIR peaking/notching comb filters that can boost/attenuate a frequency from a signal. `scipy.signal.sosfilt` performance has been improved to avoid some previously- observed slowdowns `scipy.signal.windows.taylor` has been added--the Taylor window function is commonly used in radar digital signal processing `scipy.signal.gauss_spline` now supports ``list`` type input for consistency with other related SciPy functions `scipy.signal.correlation_lags` has been added to allow calculation of the lag/ displacement indices array for 1D cross-correlation. `scipy.sparse` improvements ---------------------------- A solver for the minimum weight full matching problem for bipartite graphs, also known as the linear assignment problem, has been added in `scipy.sparse.csgraph.min_weight_full_bipartite_matching`. In particular, this provides functionality analogous to that of `scipy.optimize.linear_sum_assignment`, but with improved performance for sparse inputs, and the ability to handle inputs whose dense representations would not fit in memory. The time complexity of `scipy.sparse.block_diag` has been improved dramatically from quadratic to linear. `scipy.sparse.linalg` improvements ----------------------------------- The vendored version of ``SuperLU`` has been updated `scipy.fft` improvements ------------------------- The vendored ``pocketfft`` library now supports compiling with ARM neon vector extensions and has improved thread pool behavior. `scipy.spatial` improvements ----------------------------- The python implementation of ``KDTree`` has been dropped and ``KDTree`` is now implemented in terms of ``cKDTree``. You can now expect ``cKDTree``-like performance by default. This also means ``sys.setrecursionlimit`` no longer needs to be increased for querying large trees. ``transform.Rotation`` has been updated with support for Modified Rodrigues Parameters alongside the existing rotation representations (PR gh-12667). `scipy.spatial.transform.Rotation` has been partially cythonized, with some performance improvements observed `scipy.spatial.distance.cdist` has improved performance with the ``minkowski`` metric, especially for p-norm values of 1 or 2. `scipy.stats` improvements --------------------------- New distributions have been added to `scipy.stats`: - The asymmetric Laplace continuous distribution has been added as `scipy.stats.laplace_asymmetric`. - The negative hypergeometric distribution has been added as `scipy.stats.nhypergeom`. - The multivariate t distribution has been added as `scipy.stats.multivariate_t`. - The multivariate hypergeometric distribution has been added as `scipy.stats.multivariate_hypergeom`. The ``fit`` method has been overridden for several distributions (``laplace``, ``pareto``, ``rayleigh``, ``invgauss``, ``logistic``, ``gumbel_l``, ``gumbel_r``); they now use analytical, distribution-specific maximum likelihood estimation results for greater speed and accuracy than the generic (numerical optimization) implementation. The one-sample Cramér-von Mises test has been added as `scipy.stats.cramervonmises`. An option to compute one-sided p-values was added to `scipy.stats.ttest_1samp`, `scipy.stats.ttest_ind_from_stats`, `scipy.stats.ttest_ind` and `scipy.stats.ttest_rel`. The function `scipy.stats.kendalltau` now has an option to compute Kendall's tau-c (also known as Stuart's tau-c), and support has been added for exact p-value calculations for sample sizes ``> 171``. `stats.trapz` was renamed to `stats.trapezoid`, with the former name retained as an alias for backwards compatibility reasons. The function `scipy.stats.linregress` now includes the standard error of the intercept in its return value. The ``_logpdf``, ``_sf``, and ``_isf`` methods have been added to `scipy.stats.nakagami`; ``_sf`` and ``_isf`` methods also added to `scipy.stats.gumbel_r` The ``sf`` method has been added to `scipy.stats.levy` and `scipy.stats.levy_l` for improved precision. `scipy.stats.binned_statistic_dd` performance improvements for the following computed statistics: ``max``, ``min``, ``median``, and ``std``. We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source Software for Science program for supporting many of these improvements to `scipy.stats`. Deprecated features =================== `scipy.spatial` changes ------------------------ Calling ``KDTree.query`` with ``k=None`` to find all neighbours is deprecated. Use ``KDTree.query_ball_point`` instead. ``distance.wminkowski`` was deprecated; use ``distance.minkowski`` and supply weights with the ``w`` keyword instead. Backwards incompatible changes ============================== `scipy` changes ---------------- Using `scipy.fft` as a function aliasing ``numpy.fft.fft`` was removed after being deprecated in SciPy ``1.4.0``. As a result, the `scipy.fft` submodule must be explicitly imported now, in line with other SciPy subpackages. `scipy.signal` changes ----------------------- The output of ``decimate``, ``lfilter_zi``, ``lfiltic``, ``sos2tf``, and ``sosfilt_zi`` have been changed to match ``numpy.result_type`` of their inputs. The window function ``slepian`` was removed. It had been deprecated since SciPy ``1.1``. `scipy.spatial` changes ------------------------ ``cKDTree.query`` now returns 64-bit rather than 32-bit integers on Windows, making behaviour consistent between platforms (PR gh-12673). `scipy.stats` changes ---------------------- The ``frechet_l`` and ``frechet_r`` distributions were removed. They were deprecated since SciPy ``1.0``. Other changes ============= ``setup_requires`` was removed from ``setup.py``. This means that users invoking ``python setup.py install`` without having numpy already installed will now get an error, rather than having numpy installed for them via ``easy_install``. This install method was always fragile and problematic, users are encouraged to use ``pip`` when installing from source. - Fixed a bug in `scipy.optimize.dual_annealing` ``accept_reject`` calculation that caused uphill jumps to be accepted less frequently. - The time required for (un)pickling of `scipy.stats.rv_continuous`, `scipy.stats.rv_discrete`, and `scipy.stats.rv_frozen` has been significantly reduced (gh12550). Inheriting subclasses should note that ``__setstate__`` no longer calls ``__init__`` upon unpickling. Authors ======= * endolith * vkk800 * aditya + * George Bateman + * Christoph Baumgarten * Peter Bell * Tobias Biester + * Keaton J. Burns + * Evgeni Burovski * Rüdiger Busche + * Matthias Bussonnier * Dominic C + * Corallus Caninus + * CJ Carey * Thomas A Caswell * chapochn + * Lucía Cheung * Zach Colbert + * Coloquinte + * Yannick Copin + * Devin Crowley + * Terry Davis + * Michaël Defferrard + * devonwp + * Didier + * divenex + * Thomas Duvernay + * Eoghan O'Connell + * Gökçen Eraslan * Kristian Eschenburg + * Ralf Gommers * Thomas Grainger + * GreatV + * Gregory Gundersen + * h-vetinari + * Matt Haberland * Mark Harfouche + * He He + * Alex Henrie * Chun-Ming Huang + * Martin James McHugh III + * Alex Izvorski + * Joey + * ST John + * Jonas Jonker + * Julius Bier Kirkegaard * Marcin Konowalczyk + * Konrad0 * Sam Van Kooten + * Sergey Koposov + * Peter Mahler Larsen * Eric Larson * Antony Lee * Gregory R. Lee * Loïc Estève * Jean-Luc Margot + * MarkusKoebis + * Nikolay Mayorov * G. D. McBain * Andrew McCluskey + * Nicholas McKibben * Sturla Molden * Denali Molitor + * Eric Moore * Shashaank N + * Prashanth Nadukandi + * nbelakovski + * Andrew Nelson * Nick + * Nikola Forró + * odidev * ofirr + * Sambit Panda * Dima Pasechnik * Tirth Patel + * Paweł Redzyński + * Vladimir Philipenko + * Philipp Thölke + * Ilhan Polat * Eugene Prilepin + * Vladyslav Rachek * Ram Rachum + * Tyler Reddy * Martin Reinecke + * Simon Segerblom Rex + * Lucas Roberts * Benjamin Rowell + * Eli Rykoff + * Atsushi Sakai * Moritz Schulte + * Daniel B. Smith * Steve Smith + * Jan Soedingrekso + * Victor Stinner + * Jose Storopoli + * Diana Sukhoverkhova + * Søren Fuglede Jørgensen * taoky + * Mike Taves + * Ian Thomas + * Will Tirone + * Frank Torres + * Seth Troisi * Ronald van Elburg + * Hugo van Kemenade * Paul van Mulbregt * Saul Ivan Rivas Vega + * Pauli Virtanen * Jan Vleeshouwers * Samuel Wallan * Warren Weckesser * Ben West + * Eric Wieser * WillTirone + * Levi John Wolf + * Zhiqing Xiao * Rory Yorke + * Yun Wang (Maigo) + * Egor Zemlyanoy + * ZhihuiChen0903 + * Jacob Zhong + A total of 121 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.5.4 ``` compared to `1.5.3`. Importantly, wheels are now available for Python `3.9` and a more complete fix has been applied for issues building with XCode `12`. Authors ===== * Peter Bell * CJ Carey * Andrew McCluskey + * Andrew Nelson * Tyler Reddy * Eli Rykoff + * Ian Thomas + A total of 7 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.5.3 ``` compared to `1.5.2`. In particular, Linux ARM64 wheels are now available and a compatibility issue with XCode 12 has been fixed. Authors ======= * Peter Bell * CJ Carey * Thomas Duvernay + * Gregory Lee * Eric Moore * odidev * Dima Pasechnik * Tyler Reddy * Simon Segerblom Rex + * Daniel B. Smith * Will Tirone + * Warren Weckesser A total of 12 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. ```Links
- PyPI: https://pypi.org/project/scipy - Changelog: https://pyup.io/changelogs/scipy/ - Repo: https://github.com/scipy/scipy/releases - Homepage: https://www.scipy.org