Recent Releases of scipy
scipy - SciPy 1.16.1
SciPy 1.16.1 Release Notes
SciPy 1.16.1 is a bug-fix release that adds support for Python 3.14.0rc1,
including PyPI wheels.
Authors
- Name (commits)
- Evgeni Burovski (1)
- Rob Falck (1)
- Ralf Gommers (7)
- Geoffrey Gunter (1) +
- Matt Haberland (2)
- Joren Hammudoglu (1)
- Andrew Nelson (2)
- newyork_loki (1) +
- Ilhan Polat (1)
- Tyler Reddy (25)
- Daniel Schmitz (1)
- Dan Schult (2)
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.
The full issue and pull request lists, and the release asset hashes are available
in the associated README.txt file.
- Python
Published by tylerjereddy 10 months ago
scipy - SciPy 1.16.0
SciPy 1.16.0 Release Notes
SciPy 1.16.0 is the culmination of 6 months of hard work. It contains
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.16.x branch, and on adding new features on the main branch.
This release requires Python 3.11-3.13 and NumPy 1.25.2 or greater.
Highlights of this release
- Improved experimental support for the Python array API standard, including
new support in
scipy.signal, and additional support inscipy.statsandscipy.special. Improved support for JAX and Dask backends has been added, with notable support inscipy.cluster.hierarchy, many functions inscipy.special, and many of the trimmed statistics functions. scipy.optimizenow uses the new Python implementation from thePRIMApackage for COBYLA. The PRIMA implementation fixes many bugs in the old Fortran 77 implementation with a better performance on average.scipy.sparse.coo_arraynow supports n-D arrays with reshaping, arithmetic and reduction operations like sum/mean/min/max. No n-D indexing orscipy.sparse.random_arraysupport yet.- Updated guide and tools for migration from sparse matrices to sparse arrays.
- Nearly all functions in the
scipy.linalgnamespace that accept array arguments now support N-dimensional arrays to be processed as a batch. - Two new
scipy.signalfunctions,scipy.signal.firwin_2dandscipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter andscipy.signal.ShortTimeFFTdual window calculation, respectively. - A new class,
scipy.spatial.transform.RigidTransform, provides functionality to convert between different representations of rigid transforms in 3-D space. - A new function
scipy.ndimage.vectorized_filterfor generic filters that take advantage of a vectorized Python callable was added.
New features
scipy.io improvements
scipy.io.savematnow provides informative warnings for invalid field names.scipy.io.mmreadnow provides a clearer error message when provided with a source file path that does not exist.scipy.io.wavfile.readcan now read non-seekable files.
scipy.integrate improvements
- The error estimate of
scipy.integrate.tanhsinhwas improved.
scipy.interpolate improvements
- Batch support was added to
scipy.interpolate.make_smoothing_spline.
scipy.linalg improvements
- Nearly all functions in the
scipy.linalgnamespace that accept array arguments now support N-dimensional arrays to be processed as a batch. Seelinalg_batchfor details. scipy.linalg.sqrtmis rewritten in C and its performance is improved. It also tries harder to return real-valued results for real-valued inputs if possible. See the function docstring for more details. In this version the input argumentdispand the optional output argumenterrestare deprecated and will be removed four versions later. Similarly, after changing the underlying algorithm to recursion, theblocksizekeyword argument has no effect and will be removed two versions later.- Wrappers for
?stevd,?langb,?sytri,?hetriand?gbconwere added toscipy.linalg.lapack. - The default driver of
scipy.linalg.eigh_tridiagonalwas improved. scipy.linalg.solvecan now estimate the reciprocal condition number and the matrix norm calculation is more efficient.
scipy.ndimage improvements
- A new function
scipy.ndimage.vectorized_filterfor generic filters that take advantage of a vectorized Python callable was added. scipy.ndimage.rotatehas improved performance, especially on ARM platforms.
scipy.optimize improvements
- COBYLA was updated to use the new Python implementation from the
PRIMApackage. The PRIMA implementation fixes many bugs in the old Fortran 77 implementation. In addition, it results in fewer function evaluations on average but it depends on the problem and for some problems it can result in more function evaluations or a less optimal result. For those cases the user can try modifying the initial and final trust region radii given byrhobegandtolrespectively. A largerrhobegcan help the algorithm take bigger steps initially, while a smallertolcan help it continue and find a better solution. For more information, see the PRIMA documentation. - Several of the
scipy.optimize.minimizemethods, and thescipy.optimize.least_squaresfunction, have been given aworkerskeyword. This allows parallelization of some calculations via a map-like callable, such asmultiprocessing.Pool. These parallelization opportunities typically occur during numerical differentiation. This can greatly speed up minimization when the objective function is expensive to calculate. - The
lmmethod ofscipy.optimize.least_squarescan now accept3-pointandcsfor thejackeyword. - The SLSQP Fortran 77 code was ported to C. When this method is used now the
constraint multipliers are exposed to the user through the
multiplierkeyword of the returnedscipy.optimize.OptimizeResultobject. - NNLS code has been corrected and rewritten in C to address the performance regression introduced in 1.15.x
scipy.optimize.rootnow warns for invalid inner parameters when using thenewton_krylovmethod- The return value of minimization with
method='L-BFGS-B'now has a fasterhess_inv.todense()implementation. Time complexity has improved from cubic to quadratic. scipy.optimize.least_squareshas a newcallbackargument that is applicable to thetrfanddogboxmethods.callbackmay be used to track optimization results at each step or to provide custom conditions for stopping.
scipy.signal improvements
- A new function
scipy.signal.firwin_2dfor the creation of a 2-D FIR Filter using the 1-D window method was added. scipy.signal.cspline1d_evalandscipy.signal.qspline1d_evalnow provide an informative error on empty input rather than hitting the recursion limit.- A new function
scipy.signal.closest_STFT_dual_windowto calculate thescipy.signal.ShortTimeFFTdual window of a given window closest to a desired dual window. - A new classmethod
scipy.signal.ShortTimeFFT.from_win_equals_dualto create ascipy.signal.ShortTimeFFTinstance where the window and its dual are equal up to a scaling factor. It allows to create short-time Fourier transforms which are unitary mappings. - The performance of
scipy.signal.convolve2dwas improved.
scipy.sparse improvements
scipy.sparse.coo_arraynow supports n-D arrays using binary and reduction operations.- Faster operations between two DIA arrays/matrices for: add, sub, multiply, matmul.
scipy.sparse.csgraph.dijkstrashortest_path is more efficient.scipy.sparse.csgraph.yenhas performance improvements.- Support for lazy loading of
sparse.csgraphandsparse.linalgwas added.
scipy.spatial improvements
- A new class,
scipy.spatial.transform.RigidTransform, provides functionality to convert between different representations of rigid transforms in 3-D space, its application to vectors and transform composition. It follows the same design approach asscipy.spatial.transform.Rotation. scipy.spatial.transform.Rotationnow has an appropriate__repr__method, and improved performance for itsscipy.spatial.transform.Rotation.applymethod.
scipy.stats improvements
- A new function
scipy.stats.quantile, an array API compatible function for quantile estimation, was added. scipy.stats.make_distributionwas extended to work with existing discrete distributions and to facilitate the creation of custom distributions in the new random variable infrastructure.- A new distribution,
scipy.stats.Binomial, was added. - An
equal_varkeyword was added toscipy.stats.tukey_hsd(enables the Games-Howell test) andscipy.stats.f_oneway(enables Welch ANOVA). - The moment calculation for
scipy.stats.gennormwas improved. - The
scipy.stats.modeimplementation was vectorized, for faster batch calculation. - Support for
axis,nan_policy, andkeepdimskeywords was added toscipy.stats.power_divergence,scipy.stats.chisquare,scipy.stats.pointbiserialr,scipy.stats.kendalltau,scipy.stats.weightedtau,scipy.stats.theilslopes,scipy.stats.siegelslopes,scipy.stats.boxcox_llf, andscipy.stats.linregress. - Support for
keepdimsandnan_policykeywords was added toscipy.stats.gstd. - The performance of
scipy.stats.special_ortho_groupandscipy.stats.pearsonrwas improved. - Support for an
rngkeyword argument was added to thelogcdfandcdfmethods ofmultivariate_normal_genandmultivariate_normal_frozen.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
multiple submodules in recent versions of SciPy. Please consider testing
these features by setting the environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, CuPy or Dask arrays as array arguments.
Many functions in scipy.stats, scipy.special, scipy.optimize, and
scipy.constants now provide tables documenting compatible array and device
types as well as support for lazy arrays and JIT compilation. New features with
support and old features with support added for SciPy 1.16.0 include:
- Most of the
scipy.signalfunctionality scipy.ndimage.vectorized_filterscipy.special.stdtritscipy.special.softmaxscipy.special.log_softmaxscipy.stats.quantilescipy.stats.gstdscipy.stats.rankdata
Features with extended array API support (generally, improved support for JAX and Dask) in SciPy 1.16.0 include:
- many of the
scipy.cluster.hierarchyfunctions - many functions in
scipy.special - many of the trimmed statistics functions in
scipy.stats
SciPy now has a CI job that exercises GPU (CUDA) support, and as a result using PyTorch, CuPy or JAX arrays on GPU with SciPy is now more reliable.
Deprecated features
- The unused
atolargument ofscipy.optimize.nnlsis deprecated and will be removed in SciPy 1.18.0. - The
dispargument ofscipy.linalg.signm,scipy.linalg.logm, andscipy.linalg.sqrtmwill be removed in SciPy 1.18.0. scipy.stats.multinomialnow emits aFutureWarningif the rows ofpdo not sum to1.0. This condition will produce NaNs beginning in SciPy 1.18.0.- The
dispandiprintarguments of thel-bfgs-bsolver ofscipy.optimizehave been deprecated, and will be removed in SciPy 1.18.0.
Expired Deprecations
scipy.sparse.conjtransphas been removed. Use.T.conj()instead.- The
quadrature='trapz'option has been removed fromscipy.integrate.quad_vec, andscipy.stats.trapzhas been removed. Usetrapezoidin both instances instead. scipy.special.combandscipy.special.permnow raise whenexact=Trueand arguments are non-integral.- Support for inference of the two sets of measurements from the single
argument
xhas been removed fromscipy.stats.linregress. The data must be specified separately asxandy. - Support for NumPy masked arrays has been removed from
scipy.stats.power_divergenceandscipy.stats.chisquare. - A significant number of functions from non-public namespaces
(e.g.,
scipy.sparse.base,scipy.interpolate.dfitpack) were cleaned up. They were previously already emitting deprecation warnings.
Backwards incompatible changes
- Several of the
scipy.linalgfunctions for solving a linear system (e.g.scipy.linalg.solve) documented that the RHS argument must be either 1-D or 2-D but did not always raise an error when the RHS argument had more the two dimensions. Now, many-dimensional right hand sides are treated according to the rules specified inlinalg_batch. scipy.stats.bootstrapnow explicitly broadcasts elements ofdatato the same shape (ignoringaxis) before performing the calculation.- Several submodule names are no longer available via
from scipy.signal import *, but may still be imported directly, as detailed at https://github.com/scipy/scipy-stubs/pull/549.
Build and packaging related changes
- The minimum supported version of Clang was bumped from 12.0 to 15.0.
- The lowest supported macOS version for wheels on PyPI is now 10.14 instead of 10.13.
- The sdist contents were optimized, resulting in a size reduction of about 50%, from 60 MB to 30 MB.
- For
Cython>=3.1.0, SciPy now uses the newcython --generate-sharedfunctionality, which reduces the total size of SciPy's wheels and on-disk installations significantly. - SciPy no longer contains an internal shared library that requires RPATH support,
after
sf_error_statewas removed fromscipy.special. - A new build option
-Duse-system-librarieshas been added. It allows opting in to using system libraries instead of using vendored sources. CurrentlyBoost.MathandQhullare supported as system build dependencies.
Other changes
- A new accompanying release of
scipy-stubs(v1.16.0.0) is available at https://github.com/scipy/scipy-stubs/releases/tag/v1.16.0.0 - The internal dependency of
scipy._libonscipy.sparsewas removed, which reduces the import time of a number of other SciPy submodules. - Support for free-threaded CPython was improved: the last known thread-safety
issues in
scipy.specialwere fixed, andpytest-run-parallelis now used in a CI job to guard against regressions. - Support for
spinas a developer CLI was added, including support for editable installs. The SciPy-specificpython dev.pyCLI will be removed in the next release cycle in favor ofspin. - The vendored Qhull library was upgraded from version 2019.1 to 2020.2.
- A large amount of the C++ code in
scipy.specialwas moved to the new header-onlyxsflibrary. That library was included back in the SciPy source tree as a git submodule. - The
namedtuple-like bunch objects returned by some SciPy functions now have improved compatibility with thepolarslibrary. - The output of the
rvsmethod ofscipy.stats.wrapcauchyis now mapped to the unit circle between 0 and2 * pi. - The
lmmethod ofscipy.optimize.least_squaresnow has a different behavior for the maximum number of function evaluations,max_nfev. The default for thelmmethod is changed to100 * n, for both a callable and a numerically estimated jacobian. This limit on function evaluations excludes those used for any numerical estimation of the Jacobian. Previously the default when using an estimated jacobian was100 * n * (n + 1), because the method included evaluations used in the estimation. In addition, for thelmmethod the number of function calls used in Jacobian approximation is no longer included inOptimizeResult.nfev. This brings the behavior oflm,trf, anddogboxinto line.
Authors
- Name (commits)
- h-vetinari (4)
- aiudirog (1) +
- Anton Akhmerov (2)
- Thorsten Alteholz (1) +
- Gabriel Augusto (1) +
- Backfisch263 (1) +
- Nickolai Belakovski (5)
- Peter Bell (1)
- Benoît W. (1) +
- Evandro Bernardes (1)
- Gauthier Berthomieu (1) +
- Maxwell Bileschi (1) +
- Sam Birch (1) +
- Florian Bourgey (3) +
- Charles Bousseau (2) +
- Richard Strong Bowen (2) +
- Jake Bowhay (127)
- Matthew Brett (1)
- Dietrich Brunn (53)
- Evgeni Burovski (254)
- Christine P. Chai (12) +
- Gayatri Chakkithara (1) +
- Saransh Chopra (2) +
- Omer Cohen (1) +
- Lucas Colley (91)
- Yahya Darman (3) +
- Benjamin Eisele (1) +
- Donnie Erb (1)
- Sagi Ezri (58) +
- Alexander Fabisch (2) +
- Matthew H Flamm (1)
- Karthik Viswanath Ganti (1) +
- Neil Girdhar (1)
- Ralf Gommers (162)
- Rohit Goswami (4)
- Saarthak Gupta (4) +
- Matt Haberland (326)
- Sasha Hafner (1) +
- Joren Hammudoglu (11)
- Chengyu Han (1) +
- Charles Harris (1)
- Kim Hsieh (4) +
- Yongcai Huang (2) +
- Lukas Huber (1) +
- Yuji Ikeda (2) +
- Guido Imperiale (105) +
- Robert Kern (2)
- Harin Khakhi (2) +
- Agriya Khetarpal (4)
- Daniil Kiktenko (1) +
- Kirill R. (2) +
- Tetsuo Koyama (1)
- Jigyasu Krishnan (1) +
- Abhishek Kumar (2) +
- Pratham Kumar (3) +
- David Kun (1) +
- Eric Larson (3)
- lciti (1)
- Antony Lee (1)
- Kieran Leschinski (1) +
- Thomas Li (2) +
- Yuxi Long (2) +
- Christian Lorentzen (2)
- Loïc Estève (4)
- Panos Mavrogiorgos (1) +
- Nikolay Mayorov (2)
- Melissa Weber Mendonça (10)
- Michał Górny (1)
- Miguel Cárdenas (2) +
- Swastik Mishra (1) +
- Sturla Molden (2)
- Andreas Nazlidis (1) +
- Andrew Nelson (209)
- Parth Nobel (1) +
- Nick ODell (9)
- Giacomo Petrillo (1)
- Victor PM (10) +
- pmav99 (1) +
- Ilhan Polat (74)
- Tyler Reddy (128)
- Érico Nogueira Rolim (1) +
- Pamphile Roy (10)
- Mikhail Ryazanov (6)
- Atsushi Sakai (9)
- Marco Salathe (1) +
- sanvi (1) +
- Neil Schemenauer (2) +
- Daniel Schmitz (20)
- Martin Schuck (1) +
- Dan Schult (33)
- Tomer Sery (19)
- Adrian Seyboldt (1) +
- Scott Shambaugh (4)
- ShannonS00 (1) +
- sildater (3) +
- Param Singh (1) +
- G Sreeja (7) +
- Albert Steppi (133)
- Kai Striega (3)
- Anushka Suyal (2)
- Julia Tatz (1) +
- Tearyt (1) +
- Elia Tomasi (1) +
- Jamie Townsend (2) +
- Edgar Andrés Margffoy Tuay (4)
- Matthias Urlichs (1) +
- Mark van Rossum (1) +
- Jacob Vanderplas (2)
- David Varela (2) +
- Christian Veenhuis (3)
- vfdev (1)
- Stefan van der Walt (2)
- Warren Weckesser (5)
- Jason N. White (1) +
- windows-server-2003 (5)
- Zhiqing Xiao (1)
- Pavadol Yamsiri (1)
- Rory Yorke (3)
- Irwin Zaid (4)
- Austin Zhang (1) +
- William Zijie Zhang (1) +
- Zaikun Zhang (1) +
- Zhenyu Zhu (1) +
- Eric Zitong Zhou (11) +
- Case Zumbrum (2) +
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (45)
A total of 126 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.
Complete issue list, PR list, and release asset hashes are available in the associated README.txt.
- Python
Published by tylerjereddy 11 months ago
scipy - SciPy 1.16.0rc2
SciPy 1.16.0 Release Notes
Note: SciPy 1.16.0 is not released yet!
SciPy 1.16.0 is the culmination of 6 months of hard work. It contains
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.16.x branch, and on adding new features on the main branch.
This release requires Python 3.11-3.13 and NumPy 1.25.2 or greater.
Highlights of this release
- Improved experimental support for the Python array API standard, including
new support in
scipy.signal, and additional support inscipy.statsandscipy.special. Improved support for JAX and Dask backends has been added, with notable support inscipy.cluster.hierarchy, many functions inscipy.special, and many of the trimmed statistics functions. scipy.optimizenow uses the new Python implementation from thePRIMApackage for COBYLA. The PRIMA implementation fixes many bugs in the old Fortran 77 implementation with a better performance on average.scipy.sparse.coo_arraynow supports n-D arrays with reshaping, arithmetic and reduction operations like sum/mean/min/max. No n-D indexing orscipy.sparse.random_arraysupport yet.- Updated guide and tools for migration from sparse matrices to sparse arrays.
- Nearly all functions in the
scipy.linalgnamespace that accept array arguments now support N-dimensional arrays to be processed as a batch. - Two new
scipy.signalfunctions,scipy.signal.firwin_2dandscipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter andscipy.signal.ShortTimeFFTdual window calculation, respectively. - A new class,
scipy.spatial.transform.RigidTransform, provides functionality to convert between different representations of rigid transforms in 3-D space.
New features
scipy.io improvements
scipy.io.savematnow provides informative warnings for invalid field names.scipy.io.mmreadnow provides a clearer error message when provided with a source file path that does not exist.scipy.io.wavfile.readcan now read non-seekable files.
scipy.integrate improvements
- The error estimate of
scipy.integrate.tanhsinhwas improved.
scipy.interpolate improvements
- Batch support was added to
scipy.interpolate.make_smoothing_spline.
scipy.linalg improvements
- Nearly all functions in the
scipy.linalgnamespace that accept array arguments now support N-dimensional arrays to be processed as a batch. See :ref:linalg_batchfor details. scipy.linalg.sqrtmis rewritten in C and its performance is improved. It also tries harder to return real-valued results for real-valued inputs if possible. See the function docstring for more details. In this version the input argumentdispand the optional output argumenterrestare deprecated and will be removed four versions later. Similarly, after changing the underlying algorithm to recursion, theblocksizekeyword argument has no effect and will be removed two versions later.- Wrappers for
?stevd,?langb,?sytri,?hetriand?gbconwere added toscipy.linalg.lapack. - The default driver of
scipy.linalg.eigh_tridiagonalwas improved. scipy.linalg.solvecan now estimate the reciprocal condition number and the matrix norm calculation is more efficient.
scipy.ndimage improvements
- A new function
scipy.ndimage.vectorized_filterfor generic filters that take advantage of a vectorized Python callable was added. scipy.ndimage.rotatehas improved performance, especially on ARM platforms.
scipy.optimize improvements
- COBYLA was updated to use the new Python implementation from the
PRIMApackage. The PRIMA implementation fixes many bugs in the old Fortran 77 implementation. In addition, it results in fewer function evaluations on average, but it depends on the problem and for some problems it can result in more function evaluations or a less optimal result. For those cases the user can try modifying the initial and final trust region radii given byrhobegandtolrespectively. A largerrhobegcan help the algorithm take bigger steps initially, while a smallertolcan help it continue and find a better solution. For more information, see the PRIMA documentation. - Several of the
scipy.optimize.minimizemethods, and thescipy.optimize.least_squaresfunction, have been given aworkerskeyword. This allows parallelization of some calculations via a map-like callable, such asmultiprocessing.Pool. These parallelization opportunities typically occur during numerical differentiation. This can greatly speed up minimization when the objective function is expensive to calculate. - The
lmmethod ofscipy.optimize.least_squarescan now accept3-pointandcsfor thejackeyword. - The SLSQP Fortran 77 code was ported to C. When this method is used now the
constraint multipliers are exposed to the user through the
multiplierkeyword of the returnedscipy.optimize.OptimizeResultobject. - NNLS code has been corrected and rewritten in C to address the performance regression introduced in 1.15.x
scipy.optimize.rootnow warns for invalid inner parameters when using thenewton_krylovmethod- The return value of minimization with
method='L-BFGS-B'now has a fasterhess_inv.todense()implementation. Time complexity has improved from cubic to quadratic. scipy.optimize.least_squareshas a newcallbackargument that is applicable to thetrfanddogboxmethods.callbackmay be used to track optimization results at each step or to provide custom conditions for stopping.
scipy.signal improvements
- A new function
scipy.signal.firwin_2dfor the creation of a 2-D FIR Filter using the 1-D window method was added. scipy.signal.cspline1d_evalandscipy.signal.qspline1d_evalnow provide an informative error on empty input rather than hitting the recursion limit.- A new function
scipy.signal.closest_STFT_dual_windowto calculate thescipy.signal.ShortTimeFFTdual window of a given window closest to a desired dual window. - A new classmethod
scipy.signal.ShortTimeFFT.from_win_equals_dualto create ascipy.signal.ShortTimeFFTinstance where the window and its dual are equal up to a scaling factor. It allows to create short-time Fourier transforms which are unitary mappings. - The performance of
scipy.signal.convolve2dwas improved.
scipy.sparse improvements
scipy.sparse.coo_arraynow supports n-D arrays using binary and reduction operations.- Faster operations between two DIA arrays/matrices for: add, sub, multiply, matmul.
scipy.sparse.csgraph.dijkstrashortest_path is more efficient.scipy.sparse.csgraph.yenhas performance improvements.- Support for lazy loading of
sparse.csgraphandsparse.linalgwas added.
scipy.spatial improvements
- A new class,
scipy.spatial.transform.RigidTransform, provides functionality to convert between different representations of rigid transforms in 3-D space, its application to vectors and transform composition. It follows the same design approach asscipy.spatial.transform.Rotation. scipy.spatial.transform.Rotationnow has an appropriate__repr__method, and improved performance for itsscipy.spatial.transform.Rotation.applymethod.
scipy.stats improvements
- A new function
scipy.stats.quantile, an array API compatible function for quantile estimation, was added. scipy.stats.make_distributionwas extended to work with existing discrete distributions and to facilitate the creation of custom distributions in the new random variable infrastructure.- A new distribution,
scipy.stats.Binomial, was added. - An
equal_varkeyword was added toscipy.stats.tukey_hsd(enables the Games-Howell test) andscipy.stats.f_oneway(enables Welch ANOVA). - The moment calculation for
scipy.stats.gennormwas improved. - The
scipy.stats.modeimplementation was vectorized, for faster batch calculation. - Support for
axis,nan_policy, andkeepdimskeywords was added toscipy.stats.power_divergence,scipy.stats.chisquare,scipy.stats.pointbiserialr,scipy.stats.kendalltau,scipy.stats.weightedtau,scipy.stats.theilslopes,scipy.stats.siegelslopes,scipy.stats.boxcox_llf, andscipy.stats.linregress. - Support for
keepdimsandnan_policykeywords was added toscipy.stats.gstd. - The performance of
scipy.stats.special_ortho_groupandscipy.stats.pearsonrwas improved. - Support for an
rngkeyword argument was added to thelogcdfandcdfmethods ofmultivariate_normal_genandmultivariate_normal_frozen.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
multiple submodules in recent versions of SciPy. Please consider testing
these features by setting the environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, CuPy or Dask arrays as array arguments.
Many functions in scipy.stats, scipy.special, scipy.optimize, and
scipy.constants now provide tables documenting compatible array and device
types as well as support for lazy arrays and JIT compilation. New features with
support and old features with support added for SciPy 1.16.0 include:
- Most of the
scipy.signalfunctionality scipy.ndimage.vectorized_filterscipy.special.stdtritscipy.special.softmaxscipy.special.log_softmaxscipy.stats.quantilescipy.stats.gstdscipy.stats.rankdata
Features with extended array API support (generally, improved support for JAX and Dask) in SciPy 1.16.0 include:
- many of the
scipy.cluster.hierarchyfunctions - many functions in
scipy.special - many of the trimmed statistics functions in
scipy.stats
SciPy now has a CI job that exercises GPU (CUDA) support, and as a result using PyTorch, CuPy or JAX arrays on GPU with SciPy is now more reliable.
Deprecated features
- The unused
atolargument ofscipy.optimize.nnlsis deprecated and will be removed in SciPy 1.18.0. - The
dispargument ofscipy.linalg.signm,scipy.linalg.logm, andscipy.linalg.sqrtmwill be removed in SciPy 1.18.0. scipy.stats.multinomialnow emits aFutureWarningif the rows ofpdo not sum to1.0. This condition will produce NaNs beginning in SciPy 1.18.0.
Expired Deprecations
scipy.sparse.conjtransphas been removed. Use.T.conj()instead.- The
quadrature='trapz'option has been removed fromscipy.integrate.quad_vec, andscipy.stats.trapzhas been removed. Usetrapezoidin both instances instead. scipy.special.combandscipy.special.permnow raise whenexact=Trueand arguments are non-integral.- Support for inference of the two sets of measurements from the single
argument
xhas been removed fromscipy.stats.linregress. The data must be specified separately asxandy. - Support for NumPy masked arrays has been removed from
scipy.stats.power_divergenceandscipy.stats.chisquare. - A significant number of functions from non-public namespaces
(e.g.,
scipy.sparse.base,scipy.interpolate.dfitpack) were cleaned up. They were previously already emitting deprecation warnings.
Backwards incompatible changes
- Several of the
scipy.linalgfunctions for solving a linear system (e.g.scipy.linalg.solve) documented that the RHS argument must be either 1-D or 2-D but did not always raise an error when the RHS argument had more the two dimensions. Now, many-dimensional right hand sides are treated according to the rules specified in :ref:linalg_batch. scipy.stats.bootstrapnow explicitly broadcasts elements ofdatato the same shape (ignoringaxis) before performing the calculation.- Several submodule names are no longer available via
from scipy.signal import *, but may still be imported directly, as detailed at https://github.com/scipy/scipy-stubs/pull/549.
Build and packaging related changes
- The minimum supported version of Clang was bumped from 12.0 to 15.0.
- The lowest supported macOS version for wheels on PyPI is now 10.14 instead of 10.13.
- The sdist contents were optimized, resulting in a size reduction of about 50%, from 60 MB to 30 MB.
- For
Cython>=3.1.0, SciPy now uses the newcython --generate-sharedfunctionality, which reduces the total size of SciPy's wheels and on-disk installations significantly. - SciPy no longer contains an internal shared library that requires RPATH support,
after
sf_error_statewas removed fromscipy.special. - A new build option
-Duse-system-librarieshas been added. It allows opting in to using system libraries instead of using vendored sources. CurrentlyBoost.MathandQhullare supported as system build dependencies.
Other changes
- The internal dependency of
scipy._libonscipy.sparsewas removed, which reduces the import time of a number of other SciPy submodules. - Support for free-threaded CPython was improved: the last known thread-safety
issues in
scipy.specialwere fixed, andpytest-run-parallelis now used in a CI job to guard against regressions. - Support for
spinas a developer CLI was added, including support for editable installs. The SciPy-specificpython dev.pyCLI will be removed in the next release cycle in favor ofspin. - The vendored Qhull library was upgraded from version 2019.1 to 2020.2.
- A large amount of the C++ code in
scipy.specialwas moved to the new header-onlyxsflibrary. That library was included back in the SciPy source tree as a git submodule. - The
namedtuple-like bunch objects returned by some SciPy functions now have improved compatibility with thepolarslibrary. - The output of the
rvsmethod ofscipy.stats.wrapcauchyis now mapped to the unit circle between 0 and2 * pi. - The
lmmethod ofscipy.optimize.least_squaresnow has a different behavior for the maximum number of function evaluations,max_nfev. The default for thelmmethod is changed to100 * n, for both a callable and a numerically estimated jacobian. This limit on function evaluations excludes those used for any numerical estimation of the Jacobian. Previously the default when using an estimated jacobian was100 * n * (n + 1), because the method included evaluations used in the estimation. In addition, for thelmmethod the number of function calls used in Jacobian approximation is no longer included inOptimizeResult.nfev. This brings the behavior oflm,trf, anddogboxinto line.
Authors
- Name (commits)
- h-vetinari (4)
- aiudirog (1) +
- Anton Akhmerov (2)
- Thorsten Alteholz (1) +
- Gabriel Augusto (1) +
- Backfisch263 (1) +
- Nickolai Belakovski (5)
- Peter Bell (1)
- Benoît W. (1) +
- Evandro Bernardes (1)
- Gauthier Berthomieu (1) +
- Maxwell Bileschi (1) +
- Sam Birch (1) +
- Florian Bourgey (3) +
- Charles Bousseau (2) +
- Richard Strong Bowen (2) +
- Jake Bowhay (126)
- Matthew Brett (1)
- Dietrich Brunn (53)
- Evgeni Burovski (252)
- Christine P. Chai (12) +
- Gayatri Chakkithara (1) +
- Saransh Chopra (2) +
- Omer Cohen (1) +
- Lucas Colley (91)
- Yahya Darman (3) +
- Benjamin Eisele (1) +
- Donnie Erb (1)
- Sagi Ezri (58) +
- Alexander Fabisch (2) +
- Matthew H Flamm (1)
- Karthik Viswanath Ganti (1) +
- Neil Girdhar (1)
- Ralf Gommers (158)
- Rohit Goswami (4)
- Saarthak Gupta (4) +
- Matt Haberland (325)
- Sasha Hafner (1) +
- Joren Hammudoglu (9)
- Chengyu Han (1) +
- Charles Harris (1)
- Kim Hsieh (4) +
- Yongcai Huang (2) +
- Lukas Huber (1) +
- Yuji Ikeda (2) +
- Guido Imperiale (104) +
- Robert Kern (2)
- Harin Khakhi (2) +
- Agriya Khetarpal (4)
- Kirill R. (2) +
- Tetsuo Koyama (1)
- Jigyasu Krishnan (1) +
- Abhishek Kumar (2) +
- Pratham Kumar (3) +
- David Kun (1) +
- Eric Larson (3)
- lciti (1)
- Antony Lee (1)
- Kieran Leschinski (1) +
- Thomas Li (2) +
- Christian Lorentzen (2)
- Loïc Estève (4)
- Panos Mavrogiorgos (1) +
- Nikolay Mayorov (2)
- Melissa Weber Mendonça (10)
- Michał Górny (1)
- Miguel Cárdenas (2) +
- Swastik Mishra (1) +
- Sturla Molden (2)
- Andreas Nazlidis (1) +
- Andrew Nelson (209)
- Parth Nobel (1) +
- Nick ODell (9)
- Giacomo Petrillo (1)
- Victor PM (10) +
- pmav99 (1) +
- Ilhan Polat (73)
- Tyler Reddy (96)
- Érico Nogueira Rolim (1) +
- Pamphile Roy (10)
- Mikhail Ryazanov (6)
- Atsushi Sakai (9)
- Marco Salathe (1) +
- sanvi (1) +
- Neil Schemenauer (2) +
- Daniel Schmitz (20)
- Martin Schuck (1) +
- Dan Schult (33)
- Tomer Sery (19)
- Adrian Seyboldt (1) +
- Scott Shambaugh (4)
- ShannonS00 (1) +
- sildater (3) +
- Param Singh (1) +
- G Sreeja (7) +
- Albert Steppi (133)
- Kai Striega (3)
- Anushka Suyal (2)
- Julia Tatz (1) +
- Tearyt (1) +
- Elia Tomasi (1) +
- Jamie Townsend (2) +
- Edgar Andrés Margffoy Tuay (4)
- Matthias Urlichs (1) +
- Mark van Rossum (1) +
- Jacob Vanderplas (2)
- David Varela (2) +
- Christian Veenhuis (3)
- vfdev (1)
- Stefan van der Walt (2)
- Warren Weckesser (5)
- Jason N. White (1) +
- windows-server-2003 (5)
- Zhiqing Xiao (1)
- Pavadol Yamsiri (1)
- Rory Yorke (3)
- Irwin Zaid (4)
- Austin Zhang (1) +
- William Zijie Zhang (1) +
- Zaikun Zhang (1) +
- Zhenyu Zhu (1) +
- Eric Zitong Zhou (11) +
- Case Zumbrum (2) +
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (45)
A total of 124 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.
Complete issue and PR lists are available in the README.txt release artifact.
- Python
Published by tylerjereddy 12 months ago
scipy - SciPy 1.16.0rc1
SciPy 1.16.0 Release Notes
Note: SciPy 1.16.0 is not released yet!
SciPy 1.16.0 is the culmination of 6 months of hard work. It contains
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.16.x branch, and on adding new features on the main branch.
This release requires Python 3.11-3.13 and NumPy 1.25.2 or greater.
Highlights of this release
- Improved experimental support for the Python array API standard, including
new support in
scipy.signal, and additional support inscipy.statsandscipy.special. Improved support for JAX and Dask backends has been added, with notable support inscipy.cluster.hierarchy, many functions inscipy.special, and many of the trimmed statistics functions. scipy.optimizenow uses the new Python implementation from thePRIMApackage for COBYLA. The PRIMA implementation fixes many bugs in the old Fortran 77 implementation with a better performance on average.scipy.sparse.coo_arraynow supports n-D arrays with reshaping, arithmetic and reduction operations like sum/mean/min/max. No n-D indexing orscipy.sparse.random_arraysupport yet.- Updated guide and tools for migration from sparse matrices to sparse arrays.
- All functions in the
scipy.linalgnamespace that accept array arguments now support N-dimensional arrays to be processed as a batch. - Two new
scipy.signalfunctions,scipy.signal.firwin_2dandscipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter andscipy.signal.ShortTimeFFTdual window calculation, respectively. - A new class,
scipy.spatial.transform.RigidTransform, provides functionality to convert between different representations of rigid transforms in 3-D space.
New features
scipy.io improvements
scipy.io.savematnow provides informative warnings for invalid field names.scipy.io.mmreadnow provides a clearer error message when provided with a source file path that does not exist.scipy.io.wavfile.readcan now read non-seekable files.
scipy.integrate improvements
- The error estimate of
scipy.integrate.tanhsinhwas improved.
scipy.interpolate improvements
- Batch support was added to
scipy.interpolate.make_smoothing_spline.
scipy.linalg improvements
- All functions in the
scipy.linalgnamespace that accept array arguments now support N-dimensional arrays to be processed as a batch. See :ref:linalg_batchfor details. scipy.linalg.sqrtmis rewritten in C and its performance is improved. It also tries harder to return real-valued results for real-valued inputs if possible. See the function docstring for more details. In this version the input argumentdispand the optional output argumenterrestare deprecated and will be removed four versions later. Similarly, after changing the underlying algorithm to recursion, theblocksizekeyword argument has no effect and will be removed two versions later.- Wrappers for
?stevd,?langb,?sytri,?hetriand?gbconwere added toscipy.linalg.lapack. - The default driver of
scipy.linalg.eigh_tridiagonalwas improved. scipy.linalg.solvecan now estimate the reciprocal condition number and the matrix norm calculation is more efficient.
scipy.ndimage improvements
- A new function
scipy.ndimage.vectorized_filterfor generic filters that take advantage of a vectorized Python callable was added. scipy.ndimage.rotatehas improved performance, especially on ARM platforms.
scipy.optimize improvements
- COBYLA was updated to use the new Python implementation from the PRIMA package.
The PRIMA implementation fixes many bugs
in the old Fortran 77 implementation. In addition, it results in fewer function evaluations on average,
but it depends on the problem and for some
problems it can result in more function evaluations or a less optimal
result. For those cases the user can try modifying the initial and final
trust region radii given by
rhobegandtolrespectively. A largerrhobegcan help the algorithm take bigger steps initially, while a smallertolcan help it continue and find a better solution. For more information, see the PRIMA documentation. - Several of the
scipy.optimize.minimizemethods, and thescipy.optimize.least_squaresfunction, have been given aworkerskeyword. This allows parallelization of some calculations via a map-like callable, such asmultiprocessing.Pool. These parallelization opportunities typically occur during numerical differentiation. This can greatly speed up minimization when the objective function is expensive to calculate. - The
lmmethod ofscipy.optimize.least_squarescan now accept3-pointandcsfor thejackeyword. - The SLSQP Fortran 77 code was ported to C. When this method is used now the
constraint multipliers are exposed to the user through the
multiplierkeyword of the returnedscipy.optimize.OptimizeResultobject. - NNLS code has been corrected and rewritten in C to address the performance regression introduced in 1.15.x
scipy.optimize.rootnow warns for invalid inner parameters when using thenewton_krylovmethod- The return value of minimization with
method='L-BFGS-B'now has a fasterhess_inv.todense()implementation. Time complexity has improved from cubic to quadratic. scipy.optimize.least_squareshas a newcallbackargument that is applicable to thetrfanddogboxmethods.callbackmay be used to track optimization results at each step or to provide custom conditions for stopping.
scipy.signal improvements
- A new function
scipy.signal.firwin_2dfor the creation of a 2-D FIR Filter using the 1-D window method was added. scipy.signal.cspline1d_evalandscipy.signal.qspline1d_evalnow provide an informative error on empty input rather than hitting the recursion limit.- A new function
scipy.signal.closest_STFT_dual_windowto calculate the~scipy.signal.ShortTimeFFTdual window of a given window closest to a desired dual window. - A new classmethod
scipy.signal.ShortTimeFFT.from_win_equals_dualto create a~scipy.signal.ShortTimeFFTinstance where the window and its dual are equal up to a scaling factor. It allows to create short-time Fourier transforms which are unitary mappings. - The performance of
scipy.signal.convolve2dwas improved.
scipy.sparse improvements
scipy.sparse.coo_arraynow supports n-D arrays using binary and reduction operations.- Faster operations between two DIA arrays/matrices for: add, sub, multiply, matmul.
scipy.sparse.csgraph.dijkstrashortest_path is more efficient.scipy.sparse.csgraph.yenhas performance improvements.- Support for lazy loading of
sparse.csgraphandsparse.linalgwas added.
scipy.spatial improvements
- A new class,
scipy.spatial.transform.RigidTransform, provides functionality to convert between different representations of rigid transforms in 3-D space, its application to vectors and transform composition. It follows the same design approach asscipy.spatial.transform.Rotation. scipy.spatial.transform.Rotationnow has an appropriate__repr__method, and improved performance for itsscipy.spatial.transform.Rotation.applymethod.
scipy.stats improvements
- A new function
scipy.stats.quantile, an array API compatible function for quantile estimation, was added. scipy.stats.make_distributionwas extended to work with existing discrete distributions and to facilitate the creation of custom distributions in the new random variable infrastructure.- A new distribution,
scipy.stats.Binomial, was added. - An
equal_varkeyword was added toscipy.stats.tukey_hsd(enables the Games-Howell test) andscipy.stats.f_oneway(enables Welch ANOVA). - The moment calculation for
scipy.stats.gennormwas improved. - The
scipy.stats.modeimplementation was vectorized, for faster batch calculation. - Support for
axis,nan_policy, andkeepdimskeywords was added toscipy.stats.power_divergence,scipy.stats.chisquare,scipy.stats.pointbiserialr,scipy.stats.kendalltau,scipy.stats.weightedtau,scipy.stats.theilslopes,scipy.stats.siegelslopes, andscipy.stats.boxcox_llf. - The performance of
scipy.stats.special_ortho_groupandscipy.stats.pearsonrwas improved.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
multiple submodules in recent versions of SciPy. Please consider testing
these features by setting the environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, CuPy or Dask arrays as array arguments.
Many functions in scipy.stats, scipy.special, scipy.optimize, and
scipy.constants now provide tables documenting compatible array and device
types as well as support for lazy arrays and JIT compilation. New features with
support and old features with support added for SciPy 1.16.0 include:
- Most of the
scipy.signalfunctionality scipy.ndimage.vectorized_filterscipy.special.stdtritscipy.special.softmaxscipy.special.log_softmaxscipy.stats.quantilescipy.stats.gstdscipy.stats.rankdata
Features with extended array API support (generally, improved support for JAX and Dask) in SciPy 1.16.0 include:
- many of the
scipy.cluster.hierarchyfunctions - many functions in
scipy.special - many of the trimmed statistics functions in
scipy.stats
SciPy now has a CI job that exercises GPU (CUDA) support, and as a result using PyTorch, CuPy or JAX arrays on GPU with SciPy is now more reliable.
Deprecated features
- The unused
atolargument ofscipy.optimize.nnlsis deprecated and will be removed in SciPy 1.18.0. - The
dispargument ofscipy.linalg.signm,scipy.linalg.logm, andscipy.linalg.sqrtmwill be removed in SciPy 1.18.0. scipy.stats.multinomialnow emits aFutureWarningif the rows ofpdo not sum to1.0. This condition will produce NaNs beginning in SciPy 1.18.0.
Expired Deprecations
scipy.sparse.conjtransphas been removed. Use.T.conj()instead.- The
quadrature='trapz'option has been removed fromscipy.integrate.quad_vec, andscipy.stats.trapzhas been removed. Usetrapezoidin both instances instead. scipy.special.combandscipy.special.permnow raise whenexact=Trueand arguments are non-integral.- Support for inference of the two sets of measurements from the single
argument
xhas been removed fromscipy.stats.linregress. The data must be specified separately asxandy. - Support for NumPy masked arrays has been removed from
scipy.stats.power_divergenceandscipy.stats.chisquare.
Backwards incompatible changes
- Several of the
scipy.linalgfunctions for solving a linear system (e.g.scipy.linalg.solve) documented that the RHS argument must be either 1-D or 2-D but did not always raise an error when the RHS argument had more the two dimensions. Now, many-dimensional right hand sides are treated according to the rules specified in :ref:linalg_batch. scipy.stats.bootstrapnow explicitly broadcasts elements ofdatato the same shape (ignoringaxis) before performing the calculation.
Build and packaging related changes
- The minimum supported version of Clang was bumped from 12.0 to 15.0.
- The lowest supported macOS version for wheels on PyPI is now 10.14 instead of 10.13.
- The sdist contents were optimized, resulting in a size reduction of about 50%, from 60 MB to 30 MB.
- For
Cython>=3.1.0, SciPy now uses the newcython --generate-sharedfunctionality, which reduces the total size of SciPy's wheels and on-disk installations significantly. - SciPy no longer contains an internal shared library that requires RPATH support,
after
sf_error_statewas removed fromscipy.special. - A new build option
-Duse-system-librarieshas been added. It allows opting in to using system libraries instead of using vendored sources. CurrentlyBoost.MathandQhullare supported as system build dependencies.
Other changes
- The internal dependency of
scipy._libonscipy.sparsewas removed, which reduces the import time of a number of other SciPy submodules. - Support for free-threaded CPython was improved: the last known thread-safety
issues in
scipy.specialwere fixed, andpytest-run-parallelis now used in a CI job to guard against regressions. - Support for
spinas a developer CLI was added, including support for editable installs. The SciPy-specificpython dev.pyCLI will be removed in the next release cycle in favor ofspin. - The vendored Qhull library was upgraded from version 2019.1 to 2020.2.
- A large amount of the C++ code in
scipy.specialwas moved to the new header-onlyxsflibrary. That library was included back in the SciPy source tree as a git submodule. - The
namedtuple-like bunch objects returned by some SciPy functions now have improved compatibility with thepolarslibrary. - The output of the
rvsmethod ofscipy.stats.wrapcauchyis now mapped to the unit circle between 0 and2 * pi. - The
lmmethod ofscipy.optimize.least_squaresnow has a different behavior for the maximum number of function evaluations,max_nfev. The default for thelmmethod is changed to100 * n, for both a callable and a numerically estimated jacobian. This limit on function evaluations excludes those used for any numerical estimation of the Jacobian. Previously the default when using an estimated jacobian was100 * n * (n + 1), because the method included evaluations used in the estimation. In addition, for thelmmethod the number of function calls used in Jacobian approximation is no longer included inOptimizeResult.nfev. This brings the behavior oflm,trf, anddogboxinto line.
Authors
- Name (commits)
- h-vetinari (4)
- aiudirog (1) +
- Anton Akhmerov (2)
- Thorsten Alteholz (1) +
- Gabriel Augusto (1) +
- Backfisch263 (1) +
- Nickolai Belakovski (5)
- Peter Bell (1)
- Benoît W. (1) +
- Evandro Bernardes (1)
- Gauthier Berthomieu (1) +
- Maxwell Bileschi (1) +
- Sam Birch (1) +
- Florian Bourgey (3) +
- Charles Bousseau (2) +
- Richard Strong Bowen (2) +
- Jake Bowhay (126)
- Matthew Brett (1)
- Dietrich Brunn (52)
- Evgeni Burovski (252)
- Christine P. Chai (12) +
- Gayatri Chakkithara (1) +
- Saransh Chopra (2) +
- Omer Cohen (1) +
- Lucas Colley (91)
- Yahya Darman (3) +
- Benjamin Eisele (1) +
- Donnie Erb (1)
- Sagi Ezri (58) +
- Alexander Fabisch (2) +
- Matthew H Flamm (1)
- Karthik Viswanath Ganti (1) +
- Neil Girdhar (1)
- Ralf Gommers (153)
- Rohit Goswami (4)
- Saarthak Gupta (4) +
- Matt Haberland (320)
- Sasha Hafner (1) +
- Joren Hammudoglu (9)
- Chengyu Han (1) +
- Charles Harris (1)
- Kim Hsieh (4) +
- Yongcai Huang (2) +
- Lukas Huber (1) +
- Yuji Ikeda (2) +
- Guido Imperiale (103) +
- Robert Kern (2)
- Harin Khakhi (2) +
- Agriya Khetarpal (4)
- Kirill R. (2) +
- Tetsuo Koyama (1)
- Jigyasu Krishnan (1) +
- Pratham Kumar (3) +
- David Kun (1) +
- Eric Larson (3)
- lciti (1)
- Antony Lee (1)
- Kieran Leschinski (1) +
- Thomas Li (2) +
- Christian Lorentzen (2)
- Loïc Estève (4)
- Panos Mavrogiorgos (1) +
- Nikolay Mayorov (2)
- Melissa Weber Mendonça (10)
- Miguel Cárdenas (2) +
- Swastik Mishra (1) +
- Sturla Molden (2)
- Andreas Nazlidis (1) +
- Andrew Nelson (209)
- Parth Nobel (1) +
- Nick ODell (9)
- Giacomo Petrillo (1)
- Victor PM (10) +
- pmav99 (1) +
- Ilhan Polat (73)
- Tyler Reddy (66)
- Érico Nogueira Rolim (1) +
- Pamphile Roy (10)
- Mikhail Ryazanov (6)
- Atsushi Sakai (9)
- Marco Salathe (1) +
- sanvi (1) +
- Neil Schemenauer (2) +
- Daniel Schmitz (20)
- Martin Schuck (1) +
- Dan Schult (32)
- Tomer Sery (19)
- Adrian Seyboldt (1) +
- Scott Shambaugh (4)
- ShannonS00 (1) +
- sildater (3) +
- Param Singh (1) +
- G Sreeja (7) +
- Albert Steppi (133)
- Kai Striega (3)
- Anushka Suyal (2)
- Julia Tatz (1) +
- Tearyt (1) +
- Elia Tomasi (1) +
- Jamie Townsend (2) +
- Edgar Andrés Margffoy Tuay (4)
- Matthias Urlichs (1) +
- Mark van Rossum (1) +
- Jacob Vanderplas (2)
- David Varela (2) +
- Christian Veenhuis (3)
- vfdev (1)
- Stefan van der Walt (2)
- Warren Weckesser (5)
- Jason N. White (1) +
- windows-server-2003 (5)
- Zhiqing Xiao (1)
- Pavadol Yamsiri (1)
- Rory Yorke (3)
- Irwin Zaid (4)
- Austin Zhang (1) +
- William Zijie Zhang (1) +
- Zaikun Zhang (1) +
- Eric Zitong Zhou (11) +
- Case Zumbrum (2) +
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (45)
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.
Full issue and PR lists are available in the README.txt release artifact.
- Python
Published by tylerjereddy about 1 year ago
scipy - SciPy 1.15.3
SciPy 1.15.3 Release Notes
SciPy 1.15.3 is a bug-fix release with no new features
compared to 1.15.2.
Authors
- Name (commits)
- aiudirog (1) +
- Nickolai Belakovski (1)
- Florian Bourgey (1) +
- Richard Strong Bowen (2) +
- Jake Bowhay (1)
- Dietrich Brunn (2)
- Evgeni Burovski (1)
- Lucas Colley (1)
- Ralf Gommers (1)
- Saarthak Gupta (1) +
- Matt Haberland (4)
- Chengyu Han (1) +
- Lukas Huber (1) +
- Nick ODell (2)
- Ilhan Polat (4)
- Tyler Reddy (52)
- Neil Schemenauer (1) +
- Dan Schult (1)
- sildater (1) +
- Gagandeep Singh (4)
- Albert Steppi (2)
- Matthias Urlichs (1) +
- David Varela (1) +
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (3)
A total of 24 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.
- Python
Published by tylerjereddy about 1 year ago
scipy - SciPy 1.15.2
SciPy 1.15.2 Release Notes
SciPy 1.15.2 is a bug-fix release with no new features
compared to 1.15.1. Free-threaded Python 3.13 wheels
for Linux ARM platform are available on PyPI starting with
this release.
Authors
- Name (commits)
- Peter Bell (1)
- Charles Bousseau (1) +
- Jake Bowhay (3)
- Matthew Brett (1)
- Ralf Gommers (3)
- Rohit Goswami (1)
- Matt Haberland (4)
- Parth Nobel (1) +
- Tyler Reddy (33)
- Daniel Schmitz (2)
- Dan Schult (5)
- Scott Shambaugh (2)
- Edgar Andrés Margffoy Tuay (1)
- Warren Weckesser (4)
A total of 14 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.
- Python
Published by tylerjereddy over 1 year ago
scipy - SciPy 1.15.1
SciPy 1.15.1 Release Notes
SciPy 1.15.1 is a bug-fix release with no new features
compared to 1.15.0. Importantly, an issue with the
import of scipy.optimize breaking other packages
has been fixed.
Authors
- Name (commits)
- Ralf Gommers (3)
- Rohit Goswami (1)
- Matt Haberland (2)
- Tyler Reddy (7)
- Daniel Schmitz (1)
A total of 5 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.
- Python
Published by tylerjereddy over 1 year ago
scipy - SciPy 1.15.0
SciPy 1.15.0 Release Notes
SciPy 1.15.0 is the culmination of 6 months of hard work. It contains
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.15.x branch, and on adding new features on the main branch.
This release requires Python 3.10-3.13 and NumPy 1.23.5 or greater.
Highlights of this release
- Sparse arrays are now fully functional for 1-D and 2-D arrays. We recommend
that all new code use sparse arrays instead of sparse matrices and that
developers start to migrate their existing code from sparse matrix to sparse
array:
migration_to_sparray. Bothsparse.linalgandsparse.csgraphwork with either sparse matrix or sparse array and work internally with sparse array. - Sparse arrays now provide basic support for n-D arrays in the COO format
including
add,subtract,reshape,transpose,matmul,dot,tensordotand others. More functionality is coming in future releases. - Preliminary support for free-threaded Python 3.13.
- New probability distribution features in
scipy.statscan be used to improve the speed and accuracy of existing continuous distributions and perform new probability calculations. Several new features support vectorized calculations with Python Array API Standard compatible input (see "Array API Standard Support" below):
scipy.differentiateis a new top-level submodule for accurate estimation of derivatives of black box functions.scipy.optimize.elementwisecontains new functions for root-finding and minimization of univariate functions.scipy.integrateoffers new functionscubature,tanhsinh, andnsumfor multivariate integration, univariate integration, and univariate series summation, respectively.
scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.scipy.specialadds new functions offering improved Legendre function implementations with a more consistent interface.
New features
scipy.differentiate introduction
The new scipy.differentiate sub-package contains functions for accurate
estimation of derivatives of black box functions.
- Use
scipy.differentiate.derivativefor first-order derivatives of scalar-in, scalar-out functions. - Use
scipy.differentiate.jacobianfor first-order partial derivatives of vector-in, vector-out functions. - Use
scipy.differentiate.hessianfor second-order partial derivatives of vector-in, scalar-out functions.
All functions use high-order finite difference rules with adaptive (real) step size. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see "Array API Standard Support" below).
scipy.integrate improvements
- The new
scipy.integrate.cubaturefunction supports multidimensional integration, and has support for approximating integrals with one or more sets of infinite limits. scipy.integrate.tanhsinhis now exposed for public use, allowing evaluation of a convergent integral using tanh-sinh quadrature.scipy.integrate.nsumevaluates finite and infinite series and their logarithms.scipy.integrate.lebedev_rulecomputes abscissae and weights for integration over the surface of a sphere.- The
QUADPACKFortran77 package has been ported to C.
scipy.interpolate improvements
scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.scipy.interpolate.FloaterHormannInterpolatoradds barycentric rational interpolation.- New functions
scipy.interpolate.make_splrepandscipy.interpolate.make_splprepimplement construction of smoothing splines. The algorithmic content is equivalent to FITPACK (splrepandsplprepfunctions, and*UnivariateSplineclasses) and the user API is consistent withmake_interp_spline: these functions receive data arrays and return ascipy.interpolate.BSplineinstance. - New generator function
scipy.interpolate.generate_knotsimplements the FITPACK strategy for selecting knots of a smoothing spline given the smoothness parameter,s. The function exposes the internal logic of knot selection thatsplrepand*UnivariateSplinewas using.
scipy.linalg improvements
scipy.linalg.interpolativeFortran77 code has been ported to Cython.scipy.linalg.solvesupports several new values for theassume_aargument, enabling faster computation for diagonal, tri-diagonal, banded, and triangular matrices. Also, whenassume_ais left unspecified, the function now automatically detects and exploits diagonal, tri-diagonal, and triangular structures.scipy.linalgmatrix creation functions (scipy.linalg.circulant,scipy.linalg.companion,scipy.linalg.convolution_matrix,scipy.linalg.fiedler,scipy.linalg.fiedler_companion, andscipy.linalg.leslie) now support batch matrix creation.scipy.linalg.funmis faster.scipy.linalg.orthogonal_procrustesnow supports complex input.- Wrappers for the following LAPACK routines have been added in
scipy.linalg.lapack:?lantr,?sytrs,?hetrs,?trcon, and?gtcon. scipy.linalg.expmwas rewritten in C.scipy.linalg.null_spacenow accepts the new argumentsoverwrite_a,check_finite, andlapack_driver.id_distFortran code was rewritten in Cython.
scipy.ndimage improvements
- Several additional filtering functions now support an
axesargument that specifies which axes of the input filtering is to be performed on. These includecorrelate,convolve,generic_laplace,laplace,gaussian_laplace,derivative2,generic_gradient_magnitude,gaussian_gradient_magnitudeandgeneric_filter. - The binary and grayscale morphology functions now support an
axesargument that specifies which axes of the input filtering is to be performed on. scipy.ndimage.rank_filtertime complexity has improved fromntolog(n).
scipy.optimize improvements
- The vendored HiGHS library has been upgraded from
1.4.0to1.8.0, bringing accuracy and performance improvements to solvers. - The
MINPACKFortran77 package has been ported to C. - The
L-BFGS-BFortran77 package has been ported to C. - The new
scipy.optimize.elementwisenamespace includes functionsbracket_root,find_root,bracket_minimum, andfind_minimumfor root-finding and minimization of univariate functions. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see "Array API Standard Support" below). Compared to existing functions (e.g.scipy.optimize.root_scalarandscipy.optimize.minimize_scalar), these functions can offer speedups of over 100x when used with NumPy arrays, and even greater gains are possible with other Array API Standard compatible array libraries (e.g. CuPy). scipy.optimize.differential_evolutionnow supports more general use ofworkers, such as passing a map-like callable.scipy.optimize.nnlswas rewritten in Cython.HessianUpdateStrategynow supports__matmul__.
scipy.signal improvements
- Add functionality of complex-valued waveforms to
signal.chirp(). scipy.signal.lombscarglehas two new arguments,weightsandfloating_mean, enabling sample weighting and removal of an unknown y-offset independently for each frequency. Additionally, thenormalizeargument includes a new option to return the complex representation of the amplitude and phase.- New function
scipy.signal.envelopefor computation of the envelope of a real or complex valued signal.
scipy.sparse improvements
- A migration guide is now available for moving from sparse.matrix to sparse.array in your code/library.
- Sparse arrays now support indexing for 1-D and 2-D arrays. So, sparse arrays are now fully functional for 1-D and 2D.
- n-D sparse arrays in COO format can now be constructed, reshaped and used for basic arithmetic.
- New functions
sparse.linalg.is_sptriangularandsparse.linalg.spbandwidthmimic the existing dense toolslinalg.is_triangularandlinalg.bandwidth. sparse.linalgandsparse.csgraphnow work with sparse arrays. Be careful that your index arrays are 32-bit. We are working on 64bit support.- The vendored
ARPACKlibrary has been upgraded to version3.9.1. - COO, CSR, CSC and LIL formats now support the
axisargument forcount_nonzero. - Sparse arrays and matrices may now raise errors when initialized with
incompatible data types, such as
float16. min,max,argmin, andargmaxnow support computation over nonzero elements only via the newexplicitargument.- New functions
get_index_dtypeandsafely_cast_index_arraysare available to facilitate index array casting insparse.
scipy.spatial improvements
Rotation.concatenatenow accepts a bareRotationobject, and will return a copy of it.
scipy.special improvements
New functions offering improved Legendre function implementations with a more consistent interface. See respective docstrings for more information.
scipy.special.legendre_p,scipy.special.legendre_p_allscipy.special.assoc_legendre_p,scipy.special.assoc_legendre_p_allscipy.special.sph_harm_y,scipy.special.sph_harm_y_allscipy.special.sph_legendre_p,scipy.special.sph_legendre_p_all,
The factorial functions
special.{factorial,factorial2,factorialk}now offer an extension to the complex domain by passing the kwargextend='complex'. This is opt-in because it changes the values for negative inputs (which by default return 0), as well as for some integers (in the case offactorial2andfactorialk; for more details, check the respective docstrings).scipy.special.zetanow defines the Riemann zeta function on the complex plane.scipy.special.softpluscomputes the softplus functionThe spherical Bessel functions (
scipy.special.spherical_jn,scipy.special.spherical_yn,scipy.special.spherical_in, andscipy.special.spherical_kn) now support negative arguments with real dtype.scipy.special.logsumexpnow preserves precision when one element of the sum has magnitude much bigger than the rest.The accuracy of several functions has been improved:
scipy.special.ncfdtr,scipy.special.nctdtr, andscipy.special.gdtribhave been improved throughout the domain.scipy.special.hyperuis improved for the case ofb=1, smallx, and smalla.scipy.special.logitis improved near the argumentp=0.5.scipy.special.rel_entris improved whenx/yoverflows, underflows, or is close to1.
scipy.special.ndtris now more efficient forsqrt(2)/2 < |x| < 1.
scipy.stats improvements
A new probability distribution infrastructure has been added for the implementation of univariate, continuous distributions. It has several speed, accuracy, memory, and interface advantages compared to the previous infrastructure. See
rv_infrastructurefor a tutorial.- Use
scipy.stats.make_distributionto treat an existing continuous distribution (e.g.scipy.stats.norm) with the new infrastructure. This can improve the speed and accuracy of existing distributions, especially those with methods not overridden with distribution-specific formulas. scipy.stats.Normalandscipy.stats.Uniformare pre-defined classes to represent the normal and uniform distributions, respectively. Their interfaces may be faster and more convenient than those produced bymake_distribution.scipy.stats.Mixturecan be used to represent mixture distributions.
- Use
Instances of
scipy.stats.Normal,scipy.stats.Uniform, and the classes returned byscipy.stats.make_distributionare supported by several new mathematical transformations.scipy.stats.truncatefor truncation of the support.scipy.stats.order_statisticfor the order statistics of a given number of IID random variables.scipy.stats.abs,scipy.stats.exp, andscipy.stats.log. For example,scipy.stats.abs(Normal())is distributed according to the folded normal andscipy.stats.exp(Normal())is lognormally distributed.
The new
scipy.stats.lmomentcalculates sample l-moments and l-moment ratios. Notably, these sample estimators are unbiased.scipy.stats.chatterjeexicomputes the Xi correlation coefficient, which can detect nonlinear dependence. The function also performs a hypothesis test of independence between samples.scipy.stats.wilcoxonhas improved method resolution logic for the defaultmethod='auto'. Other values ofmethodprovided by the user are now respected in all cases, and the method argumentapproxhas been renamed toasymptoticfor consistency with similar functions. (Use ofapproxis still allowed for backward compatibility.)There are several new probability distributions:
scipy.stats.dpareto_lognormrepresents the double Pareto lognormal distribution.scipy.stats.landaurepresents the Landau distribution.scipy.stats.normal_inverse_gammarepresents the normal-inverse-gamma distribution.scipy.stats.poisson_binomrepresents the Poisson binomial distribution.
Batch calculation with
scipy.stats.alexandergovernandscipy.stats.combine_pvaluesis faster.scipy.stats.chisquareadded an argumentsum_check. By default, the function raises an error when the sum of expected and obseved frequencies are not equal; settingsum_check=Falsedisables this check to facilitate hypothesis tests other than Pearson's chi-squared test.The accuracy of several distribution methods has been improved, including:
scipy.stats.nctmethodpdfscipy.stats.crystalballmethodsfscipy.stats.geommethodrvsscipy.stats.cauchymethodslogpdf,pdf,ppfandisf- The
logcdfand/orlogsfmethods of distributions that do not override the generic implementation of these methods, includingscipy.stats.beta,scipy.stats.betaprime,scipy.stats.cauchy,scipy.stats.chi,scipy.stats.chi2,scipy.stats.exponweib,scipy.stats.gamma,scipy.stats.gompertz,scipy.stats.halflogistic,scipy.stats.hypsecant,scipy.stats.invgamma,scipy.stats.laplace,scipy.stats.levy,scipy.stats.loggamma,scipy.stats.maxwell,scipy.stats.nakagami, andscipy.stats.t.
scipy.stats.qmc.PoissonDisknow accepts lower and upper bounds parametersl_boundsandu_bounds.scipy.stats.fisher_exactnow supports two-dimensional tables with shapes other than(2, 2).
Preliminary Support for Free-Threaded CPython 3.13
SciPy 1.15 has preliminary support for the free-threaded build of CPython
3.13. This allows SciPy functionality to execute in parallel with Python
threads
(see the threading stdlib module). This support was enabled by fixing a
significant number of thread-safety issues in both pure Python and
C/C++/Cython/Fortran extension modules. Wheels are provided on PyPI for this
release; NumPy >=2.1.3 is required at runtime. Note that building for a
free-threaded interpreter requires a recent pre-release or nightly for Cython
3.1.0.
Support for free-threaded Python does not mean that SciPy is fully thread-safe.
Please see scipy_thread_safety for more details.
If you are interested in free-threaded Python, for example because you have a
multiprocessing-based workflow that you are interested in running with Python
threads, we encourage testing and experimentation. If you run into problems
that you suspect are because of SciPy, please open an issue, checking first if
the bug also occurs in the "regular" non-free-threaded CPython 3.13 build.
Many threading bugs can also occur in code that releases the GIL; disabling
the GIL only makes it easier to hit threading bugs.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, ndonnx, or CuPy arrays as array arguments. Features
with support added for SciPy 1.15.0 include:
- All functions in
scipy.differentiate(new sub-package) - All functions in
scipy.optimize.elementwise(new namespace) scipy.optimize.rosen,scipy.optimize.rosen_der, andscipy.optimize.rosen_hessscipy.special.logsumexpscipy.integrate.trapezoidscipy.integrate.tanhsinh(newly public function)scipy.integrate.cubature(new function)scipy.integrate.nsum(new function)scipy.special.chdtr,scipy.special.betainc, andscipy.special.betainccscipy.stats.boxcox_llfscipy.stats.differential_entropyscipy.stats.zmap,scipy.stats.zscore, andscipy.stats.gzscorescipy.stats.tmean,scipy.stats.tvar,scipy.stats.tstd,scipy.stats.tsem,scipy.stats.tmin, andscipy.stats.tmaxscipy.stats.gmean,scipy.stats.hmeanandscipy.stats.pmeanscipy.stats.combine_pvaluesscipy.stats.ttest_ind,scipy.stats.ttest_relscipy.stats.directional_statsscipy.ndimagefunctions will now delegate tocupyx.scipy.ndimage, and for other backends will transit via NumPy arrays on the host.
Deprecated features and future changes
- Functions
scipy.linalg.interpolative.randandscipy.linalg.interpolative.seedhave been deprecated and will be removed in SciPy1.17.0. - Complex inputs to
scipy.spatial.distance.cosineandscipy.spatial.distance.correlationhave been deprecated and will raise an error in SciPy1.17.0. scipy.spatial.distance.kulczynski1andscipy.spatial.distance.sokalmichenerwere deprecated and will be removed in SciPy1.17.0.scipy.stats.find_repeatsis deprecated and will be removed in SciPy1.17.0. Please usenumpy.unique/numpy.unique_countsinstead.scipy.linalg.kronis deprecated in favour ofnumpy.kron.- Using object arrays and longdouble arrays in
scipy.signalconvolution/correlation functions (scipy.signal.correlate,scipy.signal.convolveandscipy.signal.choose_conv_method) and filtering functions (scipy.signal.lfilter,scipy.signal.sosfilt) has been deprecated and will be removed in SciPy1.17.0. scipy.stats.linregresshas deprecated one-argument use; the two variables must be specified as separate arguments.scipy.stats.trapzis deprecated in favor ofscipy.stats.trapezoid.scipy.special.lpnis deprecated in favor ofscipy.special.legendre_p_all.scipy.special.lpmnandscipy.special.clpmnare deprecated in favor ofscipy.special.assoc_legendre_p_all.scipy.special.sph_harmhas been deprecated in favor ofscipy.special.sph_harm_y.- Multi-dimensional
randcarrays passed toscipy.linalg.toeplitz,scipy.linalg.matmul_toeplitz, orscipy.linalg.solve_toeplitzwill be treated as batches of 1-D coefficients beginning in SciPy1.17.0. - The
random_stateandpermutationsarguments ofscipy.stats.ttest_indare deprecated. Usemethodto perform a permutation test, instead.
Expired Deprecations
- The wavelet functions in
scipy.signalhave been removed. This includesdaub,qmf,cascade,morlet,morlet2,ricker, andcwt. Users should usepywaveletsinstead. scipy.signal.cmplx_sorthas been removed.scipy.integrate.quadratureandscipy.integrate.romberghave been removed in favour ofscipy.integrate.quad.scipy.stats.rvs_ratio_uniformshas been removed in favor ofscipy.stats.sampling.RatioUniforms.scipy.special.factorialnow raises an error for non-integer scalars whenexact=True.scipy.integrate.cumulative_trapezoidnow raises an error for values ofinitialother than0andNone.- Complex dtypes now raise an error in
scipy.interpolate.Akima1DInterpolatorandscipy.interpolate.PchipInterpolator special.btdtrandspecial.btdtrihave been removed.- The default of the
exact=kwarg inspecial.factorialkhas changed fromTruetoFalse. - All functions in the
scipy.miscsubmodule have been removed.
Backwards incompatible changes
interpolate.BSpline.integrateoutput is now always a numpy array. Previously, for 1D splines the output was a python float or a 0D array depending on the value of theextrapolateargument.scipy.stats.wilcoxonnow respects themethodargument provided by the user. Previously, even ifmethod='exact'was specified, the function would resort tomethod='approx'in some cases.scipy.integrate.AccuracyWarninghas been removed as the functions the warning was emitted from (scipy.integrate.quadratureandscipy.integrate.romberg) have been removed.
Other changes
- A separate accompanying type stubs package,
scipy-stubs, will be made available with the1.15.0release. Installation instructions are available. scipy.stats.bootstrapnow emits aFutureWarningif the shapes of the input arrays do not agree. Broadcast the arrays to the same batch shape (i.e. for all dimensions except those specified by theaxisargument) to avoid the warning. Broadcasting will be performed automatically in the future.SciPy endorsed SPEC-7, which proposes a
rngargument to control pseudorandom number generation (PRNG) in a standard way, replacing legacy arguments likeseedandrandom_sate. In many cases, use ofrngwill change the behavior of the function unless the argument is already an instance ofnumpy.random.Generator.- Effective in SciPy
1.15.0: - The
rngargument has been added to the following functions:scipy.cluster.vq.kmeans,scipy.cluster.vq.kmeans2,scipy.interpolate.BarycentricInterpolator,scipy.interpolate.barycentric_interpolate,scipy.linalg.clarkson_woodruff_transform,scipy.optimize.basinhopping,scipy.optimize.differential_evolution,scipy.optimize.dual_annealing,scipy.optimize.check_grad,scipy.optimize.quadratic_assignment,scipy.sparse.random,scipy.sparse.random_array,scipy.sparse.rand,scipy.sparse.linalg.svds,scipy.spatial.transform.Rotation.random,scipy.spatial.distance.directed_hausdorff,scipy.stats.goodness_of_fit,scipy.stats.BootstrapMethod,scipy.stats.PermutationMethod,scipy.stats.bootstrap,scipy.stats.permutation_test,scipy.stats.dunnett, allscipy.stats.qmcclasses that consume random numbers, andscipy.stats.sobol_indices. - When passed by keyword, the
rngargument will follow the SPEC 7 standard behavior: the argument will be normalized withnp.random.default_rngbefore being used. - When passed by position or legacy keyword, the behavior of the argument will remain unchanged (for now).
- It is planned that in
1.17.0the legacy argument will start emitting warnings, and that in1.19.0the default behavior will change. - In all cases, users can avoid future disruption by proactively passing
an instance of
np.random.Generatorby keywordrng. For details, see SPEC-7.
- Effective in SciPy
The SciPy build no longer adds
-std=legacyfor Fortran code, except when using Gfortran. This avoids problems with the new Flang and AMD Fortran compilers. It may make new build warnings appear for other compilers - if so, please file an issue.scipy.signal.sosfreqzhas been renamed toscipy.signal.freqz_sos. New code should use the new name. The old name is maintained as an alias for backwards compatibility.Testing thread-safety improvements related to Python
3.13thave been made in:scipy.special,scipy.spatial,scipy.sparse,scipy.interpolate.
Authors (commits)
- endolith (4)
- h-vetinari (62)
- a-drenaline (1) +
- Afleloup (1) +
- Ahmad Alkadri (1) +
- Luiz Eduardo Amaral (3) +
- Virgile Andreani (3)
- Isaac Alonso Asensio (2) +
- Matteo Bachetti (1) +
- Arash Badie-Modiri (1) +
- Arnaud Baguet (1) +
- Soutrik Bandyopadhyay (1) +
- Ankit Barik (1) +
- Christoph Baumgarten (1)
- Nickolai Belakovski (3)
- Krishan Bhasin (1) +
- Jake Bowhay (89)
- Michael Bratsch (2) +
- Matthew Brett (1)
- Keith Briggs (1) +
- Olly Britton (145) +
- Dietrich Brunn (11)
- Clemens Brunner (1)
- Evgeni Burovski (185)
- Matthias Bussonnier (7)
- CJ Carey (32)
- Cesar Carrasco (4) +
- Hood Chatham (1)
- Aadya Chinubhai (1)
- Alessandro Chitarrini (1) +
- Thibault de Coincy (1) +
- Lucas Colley (217)
- Martin Diehl (1) +
- Djip007 (1) +
- Kevin Doshi (2) +
- Michael Dunphy (2)
- Andy Everall (1) +
- Thomas J. Fan (2)
- fancidev (60)
- Sergey Fedorov (2) +
- Sahil Garje (1) +
- Gabriel Gerlero (2)
- Yotam Gingold (1) +
- Ralf Gommers (111)
- Rohit Goswami (62)
- Anil Gurses (1) +
- Oscar Gustafsson (1) +
- Matt Haberland (392)
- Matt Hall (1) +
- Joren Hammudoglu (6) +
- CY Han (1) +
- Daniel Isaac (4) +
- Maxim Ivanov (1)
- Jakob Jakobson (2)
- Janez Demšar (4) +
- Chris Jerdonek (2) +
- Adam Jones (4) +
- Aditi Juneja (1) +
- Nuri Jung (1) +
- Guus Kamphuis (1) +
- Aditya Karumanchi (2) +
- Robert Kern (5)
- Agriya Khetarpal (11)
- Andrew Knyazev (7)
- Gideon Genadi Kogan (1) +
- Damien LaRocque (1) +
- Eric Larson (10)
- Gregory R. Lee (4)
- Linfye (1) +
- Boyu Liu (1) +
- Drew Allan Loney (1) +
- Christian Lorentzen (1)
- Loïc Estève (2)
- Smit Lunagariya (1)
- Henry Lunn (1) +
- Marco Maggi (4)
- Lauren Main (1) +
- Martin Spišák (1) +
- Mateusz Sokół (4)
- Jan-Kristian Mathisen (1) +
- Nikolay Mayorov (2)
- Nicholas McKibben (1)
- Melissa Weber Mendonça (62)
- João Mendes (10)
- Gian Marco Messa (1) +
- Samuel Le Meur-Diebolt (1) +
- Michał Górny (2)
- Naoto Mizuno (2)
- Nicolas Mokus (2)
- musvaage (18) +
- Andrew Nelson (88)
- Jens Hedegaard Nielsen (1) +
- Roman Nigmatullin (8) +
- Nick ODell (37)
- Yagiz Olmez (4)
- Matti Picus (9)
- Diogo Pires (5) +
- Ilhan Polat (96)
- Zachary Potthoff (1) +
- Tom M. Ragonneau (2)
- Peter Ralph (1) +
- Stephan Rave (1) +
- Tyler Reddy (192)
- redha2404 (2) +
- Ritvik1sharma (1) +
- Érico Nogueira Rolim (1) +
- Heshy Roskes (1)
- Pamphile Roy (34)
- Mikhail Ryazanov (1) +
- Sina Saber (1) +
- Atsushi Sakai (1)
- Clemens Schmid (1) +
- Daniel Schmitz (17)
- Moritz Schreiber (1) +
- Dan Schult (91)
- Searchingdays (1) +
- Matias Senger (1) +
- Scott Shambaugh (1)
- Zhida Shang (1) +
- Sheila-nk (4)
- Romain Simon (2) +
- Gagandeep Singh (31)
- Albert Steppi (40)
- Kai Striega (1)
- Anushka Suyal (143) +
- Alex Szatmary (1)
- Svetlin Tassev (1) +
- Ewout ter Hoeven (1)
- Tibor Völcker (4) +
- Kanishk Tiwari (1) +
- Yusuke Toyama (1) +
- Edgar Andrés Margffoy Tuay (124)
- Adam Turner (2) +
- Nicole Vadot (1) +
- Andrew Valentine (1)
- Christian Veenhuis (2)
- vfdev (2) +
- Pauli Virtanen (2)
- Simon Waldherr (1) +
- Stefan van der Walt (2)
- Warren Weckesser (23)
- Anreas Weh (1)
- Benoît Wygas (2) +
- Pavadol Yamsiri (3) +
- ysard (1) +
- Xiao Yuan (2)
- Irwin Zaid (12)
- Gang Zhao (1)
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (10)
A total of 149 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.
- Python
Published by tylerjereddy over 1 year ago
scipy - SciPy 1.15.0rc2
SciPy 1.15.0 Release Notes
Note: SciPy 1.15.0 is not released yet!
SciPy 1.15.0 is the culmination of 6 months of hard work. It contains
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.15.x branch, and on adding new features on the main branch.
This release requires Python 3.10-3.13 and NumPy 1.23.5 or greater.
Highlights of this release
- Sparse arrays are now fully functional for 1-D and 2-D arrays. We recommend
that all new code use sparse arrays instead of sparse matrices and that
developers start to migrate their existing code from sparse matrix to sparse
array:
migration_to_sparray. Bothsparse.linalgandsparse.csgraphwork with either sparse matrix or sparse array and work internally with sparse array. - Sparse arrays now provide basic support for n-D arrays in the COO format
including
add,subtract,reshape,transpose,matmul,dot,tensordotand others. More functionality is coming in future releases. - Preliminary support for free-threaded Python 3.13.
- New probability distribution features in
scipy.statscan be used to improve the speed and accuracy of existing continuous distributions and perform new probability calculations. Several new features support vectorized calculations with Python Array API Standard compatible input (see "Array API Standard Support" below):
scipy.differentiateis a new top-level submodule for accurate estimation of derivatives of black box functions.scipy.optimize.elementwisecontains new functions for root-finding and minimization of univariate functions.scipy.integrateoffers new functionscubature,tanhsinh, andnsumfor multivariate integration, univariate integration, and univariate series summation, respectively.
scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.scipy.specialadds new functions offering improved Legendre function implementations with a more consistent interface.
New features
scipy.differentiate introduction
The new scipy.differentiate sub-package contains functions for accurate
estimation of derivatives of black box functions.
- Use
scipy.differentiate.derivativefor first-order derivatives of scalar-in, scalar-out functions. - Use
scipy.differentiate.jacobianfor first-order partial derivatives of vector-in, vector-out functions. - Use
scipy.differentiate.hessianfor second-order partial derivatives of vector-in, scalar-out functions.
All functions use high-order finite difference rules with adaptive (real) step size. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see "Array API Standard Support" below).
scipy.integrate improvements
- The new
scipy.integrate.cubaturefunction supports multidimensional integration, and has support for approximating integrals with one or more sets of infinite limits. scipy.integrate.tanhsinhis now exposed for public use, allowing evaluation of a convergent integral using tanh-sinh quadrature.scipy.integrate.nsumevaluates finite and infinite series and their logarithms.scipy.integrate.lebedev_rulecomputes abscissae and weights for integration over the surface of a sphere.- The
QUADPACKFortran77 package has been ported to C.
scipy.interpolate improvements
scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.scipy.interpolate.FloaterHormannInterpolatoradds barycentric rational interpolation.- New functions
scipy.interpolate.make_splrepandscipy.interpolate.make_splprepimplement construction of smoothing splines. The algorithmic content is equivalent to FITPACK (splrepandsplprepfunctions, and*UnivariateSplineclasses) and the user API is consistent withmake_interp_spline: these functions receive data arrays and return ascipy.interpolate.BSplineinstance. - New generator function
scipy.interpolate.generate_knotsimplements the FITPACK strategy for selecting knots of a smoothing spline given the smoothness parameter,s. The function exposes the internal logic of knot selection thatsplrepand*UnivariateSplinewas using.
scipy.linalg improvements
scipy.linalg.interpolativeFortran77 code has been ported to Cython.scipy.linalg.solvesupports several new values for theassume_aargument, enabling faster computation for diagonal, tri-diagonal, banded, and triangular matrices. Also, whenassume_ais left unspecified, the function now automatically detects and exploits diagonal, tri-diagonal, and triangular structures.scipy.linalgmatrix creation functions (scipy.linalg.circulant,scipy.linalg.companion,scipy.linalg.convolution_matrix,scipy.linalg.fiedler,scipy.linalg.fiedler_companion, andscipy.linalg.leslie) now support batch matrix creation.scipy.linalg.funmis faster.scipy.linalg.orthogonal_procrustesnow supports complex input.- Wrappers for the following LAPACK routines have been added in
scipy.linalg.lapack:?lantr,?sytrs,?hetrs,?trcon, and?gtcon. scipy.linalg.expmwas rewritten in C.scipy.linalg.null_spacenow accepts the new argumentsoverwrite_a,check_finite, andlapack_driver.id_distFortran code was rewritten in Cython.
scipy.ndimage improvements
- Several additional filtering functions now support an
axesargument that specifies which axes of the input filtering is to be performed on. These includecorrelate,convolve,generic_laplace,laplace,gaussian_laplace,derivative2,generic_gradient_magnitude,gaussian_gradient_magnitudeandgeneric_filter. - The binary and grayscale morphology functions now support an
axesargument that specifies which axes of the input filtering is to be performed on. scipy.ndimage.rank_filtertime complexity has improved fromntolog(n).
scipy.optimize improvements
- The vendored HiGHS library has been upgraded from
1.4.0to1.8.0, bringing accuracy and performance improvements to solvers. - The
MINPACKFortran77 package has been ported to C. - The
L-BFGS-BFortran77 package has been ported to C. - The new
scipy.optimize.elementwisenamespace includes functionsbracket_root,find_root,bracket_minimum, andfind_minimumfor root-finding and minimization of univariate functions. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see "Array API Standard Support" below). Compared to existing functions (e.g.scipy.optimize.root_scalarandscipy.optimize.minimize_scalar), these functions can offer speedups of over 100x when used with NumPy arrays, and even greater gains are possible with other Array API Standard compatible array libraries (e.g. CuPy). scipy.optimize.differential_evolutionnow supports more general use ofworkers, such as passing a map-like callable.scipy.optimize.nnlswas rewritten in Cython.HessianUpdateStrategynow supports__matmul__.
scipy.signal improvements
- Add functionality of complex-valued waveforms to
signal.chirp(). scipy.signal.lombscarglehas two new arguments,weightsandfloating_mean, enabling sample weighting and removal of an unknown y-offset independently for each frequency. Additionally, thenormalizeargument includes a new option to return the complex representation of the amplitude and phase.- New function
scipy.signal.envelopefor computation of the envelope of a real or complex valued signal.
scipy.sparse improvements
- A migration guide is now available for moving from sparse.matrix to sparse.array in your code/library.
- Sparse arrays now support indexing for 1-D and 2-D arrays. So, sparse arrays are now fully functional for 1-D and 2D.
- n-D sparse arrays in COO format can now be constructed, reshaped and used for basic arithmetic.
- New functions
sparse.linalg.is_sptriangularandsparse.linalg.spbandwidthmimic the existing dense toolslinalg.is_triangularandlinalg.bandwidth. sparse.linalgandsparse.csgraphnow work with sparse arrays. Be careful that your index arrays are 32-bit. We are working on 64bit support.- The vendored
ARPACKlibrary has been upgraded to version3.9.1. - COO, CSR, CSC and LIL formats now support the
axisargument forcount_nonzero. - Sparse arrays and matrices may now raise errors when initialized with
incompatible data types, such as
float16. min,max,argmin, andargmaxnow support computation over nonzero elements only via the newexplicitargument.- New functions
get_index_dtypeandsafely_cast_index_arraysare available to facilitate index array casting insparse.
scipy.spatial improvements
Rotation.concatenatenow accepts a bareRotationobject, and will return a copy of it.
scipy.special improvements
New functions offering improved Legendre function implementations with a more consistent interface. See respective docstrings for more information.
scipy.special.legendre_p,scipy.special.legendre_p_allscipy.special.assoc_legendre_p,scipy.special.assoc_legendre_p_allscipy.special.sph_harm_y,scipy.special.sph_harm_y_allscipy.special.sph_legendre_p,scipy.special.sph_legendre_p_all,
The factorial functions
special.{factorial,factorial2,factorialk}now offer an extension to the complex domain by passing the kwargextend='complex'. This is opt-in because it changes the values for negative inputs (which by default return 0), as well as for some integers (in the case offactorial2andfactorialk; for more details, check the respective docstrings).scipy.special.zetanow defines the Riemann zeta function on the complex plane.scipy.special.softpluscomputes the softplus functionThe spherical Bessel functions (
scipy.special.spherical_jn,scipy.special.spherical_yn,scipy.special.spherical_in, andscipy.special.spherical_kn) now support negative arguments with real dtype.scipy.special.logsumexpnow preserves precision when one element of the sum has magnitude much bigger than the rest.The accuracy of several functions has been improved:
scipy.special.ncfdtr,scipy.special.nctdtr, andscipy.special.gdtribhave been improved throughout the domain.scipy.special.hyperuis improved for the case ofb=1, smallx, and smalla.scipy.special.logitis improved near the argumentp=0.5.scipy.special.rel_entris improved whenx/yoverflows, underflows, or is close to1.
scipy.special.ndtris now more efficient forsqrt(2)/2 < |x| < 1.
scipy.stats improvements
A new probability distribution infrastructure has been added for the implementation of univariate, continuous distributions. It has several speed, accuracy, memory, and interface advantages compared to the previous infrastructure. See
rv_infrastructurefor a tutorial.- Use
scipy.stats.make_distributionto treat an existing continuous distribution (e.g.scipy.stats.norm) with the new infrastructure. This can improve the speed and accuracy of existing distributions, especially those with methods not overridden with distribution-specific formulas. scipy.stats.Normalandscipy.stats.Uniformare pre-defined classes to represent the normal and uniform distributions, respectively. Their interfaces may be faster and more convenient than those produced bymake_distribution.scipy.stats.Mixturecan be used to represent mixture distributions.
- Use
Instances of
scipy.stats.Normal,scipy.stats.Uniform, and the classes returned byscipy.stats.make_distributionare supported by several new mathematical transformations.scipy.stats.truncatefor truncation of the support.scipy.stats.order_statisticfor the order statistics of a given number of IID random variables.scipy.stats.abs,scipy.stats.exp, andscipy.stats.log. For example,scipy.stats.abs(Normal())is distributed according to the folded normal andscipy.stats.exp(Normal())is lognormally distributed.
The new
scipy.stats.lmomentcalculates sample l-moments and l-moment ratios. Notably, these sample estimators are unbiased.scipy.stats.chatterjeexicomputes the Xi correlation coefficient, which can detect nonlinear dependence. The function also performs a hypothesis test of independence between samples.scipy.stats.wilcoxonhas improved method resolution logic for the defaultmethod='auto'. Other values ofmethodprovided by the user are now respected in all cases, and the method argumentapproxhas been renamed toasymptoticfor consistency with similar functions. (Use ofapproxis still allowed for backward compatibility.)There are several new probability distributions:
scipy.stats.dpareto_lognormrepresents the double Pareto lognormal distribution.scipy.stats.landaurepresents the Landau distribution.scipy.stats.normal_inverse_gammarepresents the normal-inverse-gamma distribution.scipy.stats.poisson_binomrepresents the Poisson binomial distribution.
Batch calculation with
scipy.stats.alexandergovernandscipy.stats.combine_pvaluesis faster.scipy.stats.chisquareadded an argumentsum_check. By default, the function raises an error when the sum of expected and obseved frequencies are not equal; settingsum_check=Falsedisables this check to facilitate hypothesis tests other than Pearson's chi-squared test.The accuracy of several distribution methods has been improved, including:
scipy.stats.nctmethodpdfscipy.stats.crystalballmethodsfscipy.stats.geommethodrvsscipy.stats.cauchymethodslogpdf,pdf,ppfandisf- The
logcdfand/orlogsfmethods of distributions that do not override the generic implementation of these methods, includingscipy.stats.beta,scipy.stats.betaprime,scipy.stats.cauchy,scipy.stats.chi,scipy.stats.chi2,scipy.stats.exponweib,scipy.stats.gamma,scipy.stats.gompertz,scipy.stats.halflogistic,scipy.stats.hypsecant,scipy.stats.invgamma,scipy.stats.laplace,scipy.stats.levy,scipy.stats.loggamma,scipy.stats.maxwell,scipy.stats.nakagami, andscipy.stats.t.
scipy.stats.qmc.PoissonDisknow accepts lower and upper bounds parametersl_boundsandu_bounds.scipy.stats.fisher_exactnow supports two-dimensional tables with shapes other than(2, 2).
Preliminary Support for Free-Threaded CPython 3.13
SciPy 1.15 has preliminary support for the free-threaded build of CPython
3.13. This allows SciPy functionality to execute in parallel with Python
threads
(see the threading stdlib module). This support was enabled by fixing a
significant number of thread-safety issues in both pure Python and
C/C++/Cython/Fortran extension modules. Wheels are provided on PyPI for this
release; NumPy >=2.1.3 is required at runtime. Note that building for a
free-threaded interpreter requires a recent pre-release or nightly for Cython
3.1.0.
Support for free-threaded Python does not mean that SciPy is fully thread-safe.
Please see scipy_thread_safety for more details.
If you are interested in free-threaded Python, for example because you have a
multiprocessing-based workflow that you are interested in running with Python
threads, we encourage testing and experimentation. If you run into problems
that you suspect are because of SciPy, please open an issue, checking first if
the bug also occurs in the "regular" non-free-threaded CPython 3.13 build.
Many threading bugs can also occur in code that releases the GIL; disabling
the GIL only makes it easier to hit threading bugs.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, ndonnx, or CuPy arrays as array arguments. Features
with support added for SciPy 1.15.0 include:
- All functions in
scipy.differentiate(new sub-package) - All functions in
scipy.optimize.elementwise(new namespace) scipy.optimize.rosen,scipy.optimize.rosen_der, andscipy.optimize.rosen_hessscipy.special.logsumexpscipy.integrate.trapezoidscipy.integrate.tanhsinh(newly public function)scipy.integrate.cubature(new function)scipy.integrate.nsum(new function)scipy.special.chdtr,scipy.special.betainc, andscipy.special.betainccscipy.stats.boxcox_llfscipy.stats.differential_entropyscipy.stats.zmap,scipy.stats.zscore, andscipy.stats.gzscorescipy.stats.tmean,scipy.stats.tvar,scipy.stats.tstd,scipy.stats.tsem,scipy.stats.tmin, andscipy.stats.tmaxscipy.stats.gmean,scipy.stats.hmeanandscipy.stats.pmeanscipy.stats.combine_pvaluesscipy.stats.ttest_ind,scipy.stats.ttest_relscipy.stats.directional_statsscipy.ndimagefunctions will now delegate tocupyx.scipy.ndimage, and for other backends will transit via NumPy arrays on the host.
Deprecated features
- Functions
scipy.linalg.interpolative.randandscipy.linalg.interpolative.seedhave been deprecated and will be removed in SciPy1.17.0. - Complex inputs to
scipy.spatial.distance.cosineandscipy.spatial.distance.correlationhave been deprecated and will raise an error in SciPy1.17.0. scipy.spatial.distance.kulczynski1andscipy.spatial.distance.sokalmichenerwere deprecated and will be removed in SciPy1.17.0.scipy.stats.find_repeatsis deprecated as of SciPy1.15.0and will be removed in SciPy1.17.0. Please usenumpy.unique/numpy.unique_countsinstead.scipy.linalg.kronis deprecated in favour ofnumpy.kron.- Using object arrays and longdouble arrays in
scipy.signalconvolution/correlation functions (scipy.signal.correlate,scipy.signal.convolveandscipy.signal.choose_conv_method) and filtering functions (scipy.signal.lfilter,scipy.signal.sosfilt) has been deprecated as of SciPy1.15.0and will be removed in SciPy1.17.0. scipy.stats.linregresshas deprecated one-argument use; the two variables must be specified as separate arguments.scipy.stats.trapzis deprecated in favor ofscipy.stats.trapezoid.scipy.special.lpnis deprecated in favor ofscipy.special.legendre_p_all.scipy.special.lpmnandscipy.special.clpmnare deprecated in favor ofscipy.special.assoc_legendre_p_all.scipy.special.sph_harmhas been deprecated in favor ofscipy.special.sph_harm_y.- The raveling of multi-dimensional input by
scipy.linalg.toeplitzhas been deprecated. It will support batching in SciPy1.17.0. - The
random_stateandpermutationsarguments ofscipy.stats.ttest_indare deprecated. Usemethodto perform a permutation test, instead.
Expired Deprecations
- The wavelet functions in
scipy.signalhave been removed. This includesdaub,qmf,cascade,morlet,morlet2,ricker, andcwt. Users should usepywaveletsinstead. scipy.signal.cmplx_sorthas been removed.scipy.integrate.quadratureandscipy.integrate.romberghave been removed in favour ofscipy.integrate.quad.scipy.stats.rvs_ratio_uniformshas been removed in favor ofscipy.stats.sampling.RatioUniforms.scipy.special.factorialnow raises an error for non-integer scalars whenexact=True.scipy.integrate.cumulative_trapezoidnow raises an error for values ofinitialother than0andNone.- Complex dtypes now raise an error in
scipy.interpolate.Akima1DInterpolatorandscipy.interpolate.PchipInterpolator special.btdtrandspecial.btdtrihave been removed.- The default of the
exact=kwarg inspecial.factorialkhas changed fromTruetoFalse. - All functions in the
scipy.miscsubmodule have been removed.
Backwards incompatible changes
interpolate.BSpline.integrateoutput is now always a numpy array. Previously, for 1D splines the output was a python float or a 0D array depending on the value of theextrapolateargument.scipy.stats.wilcoxonnow respects themethodargument provided by the user. Previously, even ifmethod='exact'was specified, the function would resort tomethod='approx'in some cases.scipy.integrate.AccuracyWarninghas been removed as the functions the warning was emitted from (scipy.integrate.quadratureandscipy.integrate.romberg) have been removed.
Other changes
- A separate accompanying type stubs package,
scipy-stubs, will be made available with the1.15.0release. Installation instructions are available. scipy.stats.bootstrapnow emits aFutureWarningif the shapes of the input arrays do not agree. Broadcast the arrays to the same batch shape (i.e. for all dimensions except those specified by theaxisargument) to avoid the warning. Broadcasting will be performed automatically in the future.SciPy endorsed SPEC-7, which proposes a
rngargument to control pseudorandom number generation (PRNG) in a standard way, replacing legacy arguments likeseedandrandom_sate. In many cases, use ofrngwill change the behavior of the function unless the argument is already an instance ofnumpy.random.Generator.- Effective in SciPy
1.15.0: - The
rngargument has been added to the following functions:scipy.cluster.vq.kmeans,scipy.cluster.vq.kmeans2,scipy.interpolate.BarycentricInterpolator,scipy.interpolate.barycentric_interpolate,scipy.linalg.clarkson_woodruff_transform,scipy.optimize.basinhopping,scipy.optimize.differential_evolution,scipy.optimize.dual_annealing,scipy.optimize.check_grad,scipy.optimize.quadratic_assignment,scipy.sparse.random,scipy.sparse.random_array,scipy.sparse.rand,scipy.sparse.linalg.svds,scipy.spatial.transform.Rotation.random,scipy.spatial.distance.directed_hausdorff,scipy.stats.goodness_of_fit,scipy.stats.BootstrapMethod,scipy.stats.PermutationMethod,scipy.stats.bootstrap,scipy.stats.permutation_test,scipy.stats.dunnett, allscipy.stats.qmcclasses that consume random numbers, andscipy.stats.sobol_indices. - When passed by keyword, the
rngargument will follow the SPEC 7 standard behavior: the argument will be normalized withnp.random.default_rngbefore being used. - When passed by position or legacy keyword, the behavior of the argument will remain unchanged (for now).
- It is planned that in
1.17.0the legacy argument will start emitting warnings, and that in1.19.0the default behavior will change. - In all cases, users can avoid future disruption by proactively passing
an instance of
np.random.Generatorby keywordrng. For details, see SPEC-7.
- Effective in SciPy
The SciPy build no longer adds
-std=legacyfor Fortran code, except when using Gfortran. This avoids problems with the new Flang and AMD Fortran compilers. It may make new build warnings appear for other compilers - if so, please file an issue.scipy.signal.sosfreqzhas been renamed toscipy.signal.freqz_sos. New code should use the new name. The old name is maintained as an alias for backwards compatibility.Testing thread-safety improvements related to Python
3.13thave been made in:scipy.special,scipy.spatial,scipy.sparse,scipy.interpolate.
Authors (commits)
- endolith (4)
- h-vetinari (62)
- a-drenaline (1) +
- Afleloup (1) +
- Ahmad Alkadri (1) +
- Luiz Eduardo Amaral (3) +
- Virgile Andreani (3)
- Isaac Alonso Asensio (2) +
- Matteo Bachetti (1) +
- Arash Badie-Modiri (1) +
- Arnaud Baguet (1) +
- Soutrik Bandyopadhyay (1) +
- Ankit Barik (1) +
- Christoph Baumgarten (1)
- Nickolai Belakovski (3)
- Krishan Bhasin (1) +
- Jake Bowhay (89)
- Michael Bratsch (2) +
- Matthew Brett (1)
- Keith Briggs (1) +
- Olly Britton (145) +
- Dietrich Brunn (11)
- Clemens Brunner (1)
- Evgeni Burovski (185)
- Matthias Bussonnier (7)
- CJ Carey (32)
- Cesar Carrasco (4) +
- Hood Chatham (1)
- Aadya Chinubhai (1)
- Alessandro Chitarrini (1) +
- Thibault de Coincy (1) +
- Lucas Colley (217)
- Martin Diehl (1) +
- Djip007 (1) +
- Kevin Doshi (2) +
- Michael Dunphy (2)
- Andy Everall (1) +
- Thomas J. Fan (2)
- fancidev (60)
- Sergey Fedorov (2) +
- Sahil Garje (1) +
- Gabriel Gerlero (2)
- Yotam Gingold (1) +
- Ralf Gommers (110)
- Rohit Goswami (62)
- Anil Gurses (1) +
- Oscar Gustafsson (1) +
- Matt Haberland (389)
- Matt Hall (1) +
- Joren Hammudoglu (6) +
- CY Han (1) +
- Daniel Isaac (4) +
- Maxim Ivanov (1)
- Jakob Jakobson (2)
- Janez Demšar (4) +
- Chris Jerdonek (2) +
- Adam Jones (4) +
- Aditi Juneja (1) +
- Nuri Jung (1) +
- Guus Kamphuis (1) +
- Aditya Karumanchi (2) +
- Robert Kern (5)
- Agriya Khetarpal (11)
- Andrew Knyazev (7)
- Gideon Genadi Kogan (1) +
- Damien LaRocque (1) +
- Eric Larson (10)
- Gregory R. Lee (4)
- Linfye (1) +
- Boyu Liu (1) +
- Drew Allan Loney (1) +
- Christian Lorentzen (1)
- Loïc Estève (2)
- Smit Lunagariya (1)
- Henry Lunn (1) +
- Marco Maggi (4)
- Lauren Main (1) +
- Martin Spišák (1) +
- Mateusz Sokół (4)
- Jan-Kristian Mathisen (1) +
- Nikolay Mayorov (2)
- Nicholas McKibben (1)
- Melissa Weber Mendonça (62)
- João Mendes (10)
- Gian Marco Messa (1) +
- Samuel Le Meur-Diebolt (1) +
- Michał Górny (2)
- Naoto Mizuno (2)
- Nicolas Mokus (2)
- musvaage (18) +
- Andrew Nelson (88)
- Jens Hedegaard Nielsen (1) +
- Roman Nigmatullin (8) +
- Nick ODell (37)
- Yagiz Olmez (4)
- Matti Picus (9)
- Diogo Pires (5) +
- Ilhan Polat (96)
- Zachary Potthoff (1) +
- Tom M. Ragonneau (2)
- Peter Ralph (1) +
- Stephan Rave (1) +
- Tyler Reddy (182)
- redha2404 (2) +
- Ritvik1sharma (1) +
- Érico Nogueira Rolim (1) +
- Heshy Roskes (1)
- Pamphile Roy (34)
- Mikhail Ryazanov (1) +
- Sina Saber (1) +
- Atsushi Sakai (1)
- Clemens Schmid (1) +
- Daniel Schmitz (17)
- Moritz Schreiber (1) +
- Dan Schult (91)
- Searchingdays (1) +
- Matias Senger (1) +
- Scott Shambaugh (1)
- Zhida Shang (1) +
- Sheila-nk (4)
- Romain Simon (2) +
- Gagandeep Singh (31)
- Albert Steppi (40)
- Kai Striega (1)
- Anushka Suyal (143) +
- Alex Szatmary (1)
- Svetlin Tassev (1) +
- Ewout ter Hoeven (1)
- Tibor Völcker (4) +
- Kanishk Tiwari (1) +
- Yusuke Toyama (1) +
- Edgar Andrés Margffoy Tuay (124)
- Adam Turner (2) +
- Nicole Vadot (1) +
- Andrew Valentine (1)
- Christian Veenhuis (2)
- vfdev (2) +
- Pauli Virtanen (2)
- Simon Waldherr (1) +
- Stefan van der Walt (2)
- Warren Weckesser (23)
- Anreas Weh (1)
- Benoît Wygas (2) +
- Pavadol Yamsiri (3) +
- ysard (1) +
- Xiao Yuan (2)
- Irwin Zaid (12)
- Gang Zhao (1)
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (10)
A total of 149 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.
- Python
Published by tylerjereddy over 1 year ago
scipy - SciPy 1.15.0rc1
SciPy 1.15.0 Release Notes
Note: SciPy 1.15.0 is not released yet!
SciPy 1.15.0 is the culmination of 6 months of hard work. It contains
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.15.x branch, and on adding new features on the main branch.
This release requires Python 3.10-3.13 and NumPy 1.23.5 or greater.
Highlights of this release
- Sparse arrays are now fully functional for 1-D and 2-D arrays. We recommend
that all new code use sparse arrays instead of sparse matrices and that
developers start to migrate their existing code from sparse matrix to sparse
array:
migration_to_sparray. Bothsparse.linalgandsparse.csgraphwork with either sparse matrix or sparse array and work internally with sparse array. - Sparse arrays now provide basic support for n-D arrays in the COO format
including
add,subtract,reshape,transpose,matmul,dot,tensordotand others. More functionality is coming in future releases. - Preliminary support for free-threaded Python 3.13.
- New probability distribution features in
scipy.statscan be used to improve the speed and accuracy of existing continuous distributions and perform new probability calculations. scipy.differentiateis a new top-level submodule for accurate estimation of derivatives of black box functions.scipy.optimize.elementwiseprovides vectorized root-finding and minimization of univariate functions, and it supports the array API as do newintegratefunctionstanhsinh,nsum, andcubature.scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.
New features
scipy.differentiate introduction
The new scipy.differentiate sub-package contains functions for accurate
estimation of derivatives of black box functions.
- Use
scipy.differentiate.derivativefor first-order derivatives of scalar-in, scalar-out functions. - Use
scipy.differentiate.jacobianfor first-order partial derivatives of vector-in, vector-out functions. - Use
scipy.differentiate.hessianfor second-order partial derivatives of vector-in, scalar-out functions.
All functions use high-order finite difference rules with adaptive (real) step size. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see "Array API Standard Support" below).
scipy.integrate improvements
- The
QUADPACKFortran77 package has been ported to C. scipy.integrate.lebedev_rulecomputes abscissae and weights for integration over the surface of a sphere.scipy.integrate.nsumevaluates finite and infinite series and their logarithms.scipy.integrate.tanhsinhis now exposed for public use, allowing evaluation of a convergent integral using tanh-sinh quadrature.- The new
scipy.integrate.cubaturefunction supports multidimensional integration, and has support for approximating integrals with one or more sets of infinite limits.
scipy.interpolate improvements
scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.scipy.interpolate.FloaterHormannInterpolatoradds barycentric rational interpolation.- New functions
scipy.interpolate.make_splrepandscipy.interpolate.make_splprepimplement construction of smoothing splines. The algorithmic content is equivalent to FITPACK (splrepandsplprepfunctions, and*UnivariateSplineclasses) and the user API is consistent withmake_interp_spline: these functions receive data arrays and return ascipy.interpolate.BSplineinstance. - New generator function
scipy.interpolate.generate_knotsimplements the FITPACK strategy for selecting knots of a smoothing spline given the smoothness parameter,s. The function exposes the internal logic of knot selection thatsplrepand*UnivariateSplinewas using.
scipy.linalg improvements
scipy.linalg.interpolativeFortran77 code has been ported to Cython.scipy.linalg.solvesupports several new values for theassume_aargument, enabling faster computation for diagonal, tri-diagonal, banded, and triangular matrices. Also, whenassume_ais left unspecified, the function now automatically detects and exploits diagonal, tri-diagonal, and triangular structures.scipy.linalgmatrix creation functions (scipy.linalg.circulant,scipy.linalg.companion,scipy.linalg.convolution_matrix,scipy.linalg.fiedler,scipy.linalg.fiedler_companion, andscipy.linalg.leslie) now support batch matrix creation.scipy.linalg.funmis faster.scipy.linalg.orthogonal_procrustesnow supports complex input.- Wrappers for the following LAPACK routines have been added in
scipy.linalg.lapack:?lantr,?sytrs,?hetrs,?trcon, and?gtcon. scipy.linalg.expmwas rewritten in C.scipy.linalg.null_spacenow accepts the new argumentsoverwrite_a,check_finite, andlapack_driver.id_distFortran code was rewritten in Cython.
scipy.ndimage improvements
- Several additional filtering functions now support an
axesargument that specifies which axes of the input filtering is to be performed on. These includecorrelate,convolve,generic_laplace,laplace,gaussian_laplace,derivative2,generic_gradient_magnitude,gaussian_gradient_magnitudeandgeneric_filter. - The binary and grayscale morphology functions now support an
axesargument that specifies which axes of the input filtering is to be performed on. scipy.ndimage.rank_filtertime complexity has improved fromntolog(n).
scipy.optimize improvements
- The vendored HiGHS library has been upgraded from
1.4.0to1.8.0, bringing accuracy and performance improvements to solvers. - The
MINPACKFortran77 package has been ported to C. - The
L-BFGS-BFortran77 package has been ported to C. - The new
scipy.optimize.elementwisenamespace includes functionsbracket_root,find_root,bracket_minimum, andfind_minimumfor root-finding and minimization of univariate functions. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see "Array API Standard Support" below). Compared to existing functions (e.g.scipy.optimize.root_scalarandscipy.optimize.minimize_scalar), these functions can offer speedups of over 100x when used with NumPy arrays, and even greater gains are possible with other Array API Standard compatible array libraries (e.g. CuPy). scipy.optimize.differential_evolutionnow supports more general use ofworkers, such as passing a map-like callable.scipy.optimize.nnlswas rewritten in Cython.HessianUpdateStrategynow supports__matmul__.
scipy.signal improvements
- Add functionality of complex-valued waveforms to
signal.chirp(). scipy.signal.lombscarglehas two new arguments,weightsandfloating_mean, enabling sample weighting and removal of an unknown y-offset independently for each frequency. Additionally, thenormalizeargument includes a new option to return the complex representation of the amplitude and phase.- New function
scipy.signal.envelopefor computation of the envelope of a real or complex valued signal.
scipy.sparse improvements
- A :ref:
migration guide<migration_to_sparray>is now available for moving from sparse.matrix to sparse.array in your code/library. - Sparse arrays now support indexing for 1-D and 2-D arrays. So, sparse arrays are now fully functional for 1-D and 2D.
- n-D sparse arrays in COO format can now be constructed, reshaped and used for basic arithmetic.
- New functions
sparse.linalg.is_sptriangularandsparse.linalg.spbandwidthmimic the existing dense toolslinalg.is_triangularandlinalg.bandwidth. sparse.linalgandsparse.csgraphnow work with sparse arrays. Be careful that your index arrays are 32-bit. We are working on 64bit support.- The vendored
ARPACKlibrary has been upgraded to version3.9.1. - COO, CSR, CSC and LIL formats now support the
axisargument forcount_nonzero. - Sparse arrays and matrices may now raise errors when initialized with
incompatible data types, such as
float16. min,max,argmin, andargmaxnow support computation over nonzero elements only via the newexplicitargument.- New functions
get_index_dtypeandsafely_cast_index_arraysare available to facilitate index array casting insparse.
scipy.spatial improvements
Rotation.concatenatenow accepts a bareRotationobject, and will return a copy of it.
scipy.special improvements
- The factorial functions
special.{factorial,factorial2,factorialk}now offer an extension to the complex domain by passing the kwargextend='complex'. This is opt-in because it changes the values for negative inputs (which by default return 0), as well as for some integers (in the case offactorial2andfactorialk; for more details, check the respective docstrings). scipy.special.zetanow defines the Riemann zeta function on the complex plane.scipy.special.softpluscomputes the softplus function- The spherical Bessel functions (
scipy.special.spherical_jn,scipy.special.spherical_yn,scipy.special.spherical_in, andscipy.special.spherical_kn) now support negative arguments with real dtype. scipy.special.logsumexpnow preserves precision when one element of the sum has magnitude much bigger than the rest.The accuracy of several functions has been improved:
scipy.special.ncfdtrandscipy.special.nctdtrhave been improved throughout the domain.scipy.special.hyperuis improved for the case ofb=1, smallx, and smalla.scipy.special.logitis improved near the argumentp=0.5.scipy.special.rel_entris improved whenx/yoverflows, underflows, or is close to1.
scipy.special.gdtribmay now be used in a CuPyElementwiseKernelon GPUs.scipy.special.ndtris now more efficient.
scipy.stats improvements
A new probability distribution infrastructure has been added for the implementation of univariate, continuous distributions with speed, accuracy, and memory advantages:
scipy.stats.Normalrepresents the normal distribution with the new interface. In typical cases, its methods are faster and more accurate than those ofscipy.stats.norm.- Use
scipy.stats.make_distributionto treat an existing continuous distribution (e.g.scipy.stats.norm) with the new infrastructure. This can improve the speed and accuracy of existing distributions, especially for methods not overridden with custom formulas in the implementation.
scipy.stats.Mixturehas been added to represent mixture distributions.Instances of
scipy.stats.Normaland the classes returned byscipy.stats.make_distributionare supported by several new mathematical transformations.scipy.stats.truncatefor truncation of the support.scipy.stats.order_statisticfor the order statistics of a given number of IID random variables.scipy.stats.abs,scipy.stats.exp, andscipy.stats.log. For example,scipy.stats.abs(Normal())is distributed according to the folded normal andscipy.stats.exp(Normal())is lognormally distributed.
The new
scipy.stats.lmomentcalculates sample l-moments and l-moment ratios. Notably, these sample estimators are unbiased.scipy.stats.chatterjeexicomputes the Xi correlation coefficient, which can detect nonlinear dependence. The function also performs a hypothesis test of independence between samples.scipy.stats.wilcoxonhas improved method resolution logic for the defaultmethod='auto'. Other values ofmethodprovided by the user are now respected in all cases, and the method argumentapproxhas been renamed toasymptoticfor consistency with similar functions. (Use ofapproxis still allowed for backward compatibility.)There are several new probability distributions:
scipy.stats.dpareto_lognormrepresents the double Pareto lognormal distribution.scipy.stats.landaurepresents the Landau distribution.scipy.stats.normal_inverse_gammarepresents the normal-inverse-gamma distribution.scipy.stats.poisson_binomrepresents the Poisson binomial distribution.
Batch calculation with
scipy.stats.alexandergovernandscipy.stats.combine_pvaluesis faster.scipy.stats.chisquareadded an argumentsum_check. By default, the function raises an error when the sum of expected and obseved frequencies are not equal; settingsum_check=Falsedisables this check to facilitate hypothesis tests other than Pearson's chi-squared test.The accuracy of several distribution methods has been improved, including:
scipy.stats.nctmethodpdfscipy.stats.crystalballmethodsfscipy.stats.geommethodrvsscipy.stats.cauchymethodslogpdf,pdf,ppfandisf- The
logcdfand/orlogsfmethods of distributions that do not override the generic implementation of these methods, includingscipy.stats.beta,scipy.stats.betaprime,scipy.stats.cauchy,scipy.stats.chi,scipy.stats.chi2,scipy.stats.exponweib,scipy.stats.gamma,scipy.stats.gompertz,scipy.stats.halflogistic,scipy.stats.hypsecant,scipy.stats.invgamma,scipy.stats.laplace,scipy.stats.levy,scipy.stats.loggamma,scipy.stats.maxwell,scipy.stats.nakagami, andscipy.stats.t.
scipy.stats.qmc.PoissonDisknow accepts lower and upper bounds parametersl_boundsandu_bounds.scipy.stats.fisher_exactnow supports two-dimensional tables with shapes other than(2, 2).
Preliminary Support for Free-Threaded CPython 3.13
SciPy 1.15 has preliminary support for the free-threaded build of CPython
3.13. This allows SciPy functionality to execute in parallel with Python
threads
(see the threading stdlib module). This support was enabled by fixing a
significant number of thread-safety issues in both pure Python and
C/C++/Cython/Fortran extension modules. Wheels are provided on PyPI for this
release; NumPy >=2.1.3 is required at runtime. Note that building for a
free-threaded interpreter requires a recent pre-release or nightly for Cython
3.1.0.
Support for free-threaded Python does not mean that SciPy is fully thread-safe.
Please see :ref:scipy_thread_safety for more details.
If you are interested in free-threaded Python, for example because you have a
multiprocessing-based workflow that you are interested in running with Python
threads, we encourage testing and experimentation. If you run into problems
that you suspect are because of SciPy, please open an issue, checking first if
the bug also occurs in the "regular" non-free-threaded CPython 3.13 build.
Many threading bugs can also occur in code that releases the GIL; disabling
the GIL only makes it easier to hit threading bugs.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, ndonnx, or CuPy arrays as array arguments. Features
with support added for SciPy 1.15.0 include:
- All functions in
scipy.differentiate(new sub-package) - All functions in
scipy.optimize.elementwise(new namespace) scipy.optimize.rosen,scipy.optimize.rosen_der, andscipy.optimize.rosen_hessscipy.special.logsumexpscipy.integrate.trapezoidscipy.integrate.tanhsinh(newly public function)scipy.integrate.cubature(new function)scipy.integrate.nsum(new function)scipy.special.chdtr,scipy.special.betainc, andscipy.special.betainccscipy.stats.boxcox_llfscipy.stats.differential_entropyscipy.stats.zmap,scipy.stats.zscore, andscipy.stats.gzscorescipy.stats.tmean,scipy.stats.tvar,scipy.stats.tstd,scipy.stats.tsem,scipy.stats.tmin, andscipy.stats.tmaxscipy.stats.gmean,scipy.stats.hmeanandscipy.stats.pmeanscipy.stats.combine_pvaluesscipy.stats.ttest_ind,scipy.stats.ttest_relscipy.stats.directional_statsscipy.ndimagefunctions will now delegate tocupyx.scipy.ndimage, and for other backends will transit via NumPy arrays on the host.
Deprecated features
- Functions
scipy.linalg.interpolative.randandscipy.linalg.interpolative.seedhave been deprecated and will be removed in SciPy1.17.0. - Complex inputs to
scipy.spatial.distance.cosineandscipy.spatial.distance.correlationhave been deprecated and will raise an error in SciPy1.17.0. scipy.spatial.distance.kulczynski1andscipy.spatial.distance.sokalmichenerwere deprecated and will be removed in SciPy1.17.0.scipy.stats.find_repeatsis deprecated as of SciPy1.15.0and will be removed in SciPy1.17.0. Please usenumpy.unique/numpy.unique_countsinstead.scipy.linalg.kronis deprecated in favour ofnumpy.kron.- Using object arrays and longdouble arrays in
scipy.signalconvolution/correlation functions (scipy.signal.correlate,scipy.signal.convolveandscipy.signal.choose_conv_method) and filtering functions (scipy.signal.lfilter,scipy.signal.sosfilt) has been deprecated as of SciPy1.15.0and will be removed in SciPy1.17.0. scipy.stats.linregresshas deprecated one-argument use; the two variables must be specified as separate arguments.scipy.stats.trapzis deprecated in favor ofscipy.stats.trapezoid.scipy.special.lpnis deprecated in favor ofscipy.special.legendre_p_all.scipy.special.lpmnandscipy.special.clpmnare deprecated in favor ofscipy.special.assoc_legendre_p_all.- The raveling of multi-dimensional input by
scipy.linalg.toeplitzhas been deprecated. It will support batching in SciPy1.17.0. - The
random_stateandpermutationsarguments ofscipy.stats.ttest_indare deprecated. Usemethodto perform a permutation test, instead.
Expired Deprecations
- The wavelet functions in
scipy.signalhave been removed. This includesdaub,qmf,cascade,morlet,morlet2,ricker, andcwt. Users should usepywaveletsinstead. scipy.signal.cmplx_sorthas been removed.scipy.integrate.quadratureandscipy.integrate.romberghave been removed in favour ofscipy.integrate.quad.scipy.stats.rvs_ratio_uniformshas been removed in favor ofscipy.stats.sampling.RatioUniforms.scipy.special.factorialnow raises an error for non-integer scalars whenexact=True.scipy.integrate.cumulative_trapezoidnow raises an error for values ofinitialother than0andNone.- Complex dtypes now raise an error in
scipy.interpolate.Akima1DInterpolatorandscipy.interpolate.PchipInterpolator special.btdtrandspecial.btdtrihave been removed.- The default of the
exact=kwarg inspecial.factorialkhas changed fromTruetoFalse. - All functions in the
scipy.miscsubmodule have been removed.
Backwards incompatible changes
interpolate.BSpline.integrateoutput is now always a numpy array. Previously, for 1D splines the output was a python float or a 0D array depending on the value of theextrapolateargument.scipy.stats.wilcoxonnow respects themethodargument provided by the user. Previously, even ifmethod='exact'was specified, the function would resort tomethod='approx'in some cases.
Other changes
- A separate accompanying type stubs package,
scipy-stubs, will be made available with the1.15.0release.Installation instructions are available <https://github.com/jorenham/scipy-stubs?tab=readme-ov-file#installation>_. scipy.stats.bootstrapnow emits aFutureWarningif the shapes of the input arrays do not agree. Broadcast the arrays to the same batch shape (i.e. for all dimensions except those specified by theaxisargument) to avoid the warning. Broadcasting will be performed automatically in the future.SciPy endorsed
SPEC-7 <https://scientific-python.org/specs/spec-0007/>, which proposes arngargument to control pseudorandom number generation (PRNG) in a standard way, replacing legacy arguments likeseedand ``randomsate. In many cases, use ofrngwill change the behavior of the function unless the argument is already an instance ofnumpy.random.Generator``.- Effective in SciPy
1.15.0: - The
rngargument has been added to the following functions:scipy.cluster.vq.kmeans,scipy.cluster.vq.kmeans2,scipy.interpolate.BarycentricInterpolator,scipy.interpolate.barycentric_interpolate,scipy.linalg.clarkson_woodruff_transform,scipy.optimize.basinhopping,scipy.optimize.differential_evolution,scipy.optimize.dual_annealing,scipy.optimize.check_grad,scipy.optimize.quadratic_assignment,scipy.sparse.random,scipy.sparse.random_array,scipy.sparse.rand,scipy.sparse.linalg.svds,scipy.spatial.transform.Rotation.random,scipy.spatial.distance.directed_hausdorff,scipy.stats.goodness_of_fit,scipy.stats.BootstrapMethod,scipy.stats.PermutationMethod,scipy.stats.bootstrap,scipy.stats.permutation_test,scipy.stats.dunnett, allscipy.stats.qmcclasses that consume random numbers, andscipy.stats.sobol_indices. - When passed by keyword, the
rngargument will follow the SPEC 7 standard behavior: the argument will be normalized withnp.random.default_rngbefore being used. - When passed by position or legacy keyword, the behavior of the argument will remain unchanged (for now).
- It is planned that in
1.17.0the legacy argument will start emitting warnings, and that in1.19.0the default behavior will change. - In all cases, users can avoid future disruption by proactively passing
an instance of
np.random.Generatorby keywordrng. For details, seeSPEC-7 <https://scientific-python.org/specs/spec-0007/>_.
- Effective in SciPy
The SciPy build no longer adds
-std=legacyfor Fortran code, except when using Gfortran. This avoids problems with the new Flang and AMD Fortran compilers. It may make new build warnings appear for other compilers - if so, please file an issue.scipy.signal.sosfreqzhas been renamed toscipy.signal.freqz_sos. New code should use the new name. The old name is maintained as an alias for backwards compatibility.Testing thread-safety improvements related to Python
3.13thave been made in:scipy.special,scipy.spatial,scipy.sparse,scipy.interpolate.
Authors (commits)
- endolith (4)
- h-vetinari (61)
- a-drenaline (1) +
- Afleloup (1) +
- Ahmad Alkadri (1) +
- Luiz Eduardo Amaral (3) +
- Virgile Andreani (3)
- Isaac Alonso Asensio (2) +
- Matteo Bachetti (1) +
- Arash Badie-Modiri (1) +
- Arnaud Baguet (1) +
- Soutrik Bandyopadhyay (1) +
- Ankit Barik (1) +
- Christoph Baumgarten (1)
- Nickolai Belakovski (3)
- Krishan Bhasin (1) +
- Jake Bowhay (85)
- Michael Bratsch (2) +
- Matthew Brett (1)
- Keith Briggs (1) +
- Olly Britton (145) +
- Dietrich Brunn (11)
- Clemens Brunner (1)
- Evgeni Burovski (182)
- Matthias Bussonnier (7)
- CJ Carey (32)
- Cesar Carrasco (4) +
- Hood Chatham (1)
- Aadya Chinubhai (1)
- Alessandro Chitarrini (1) +
- Thibault de Coincy (1) +
- Lucas Colley (217)
- Martin Diehl (1) +
- Djip007 (1) +
- Kevin Doshi (2) +
- Michael Dunphy (2)
- Andy Everall (1) +
- Thomas J. Fan (2)
- fancidev (60)
- Sergey Fedorov (2) +
- Sahil Garje (1) +
- Gabriel Gerlero (2)
- Yotam Gingold (1) +
- Ralf Gommers (107)
- Rohit Goswami (62)
- Anil Gurses (1) +
- Oscar Gustafsson (1) +
- Matt Haberland (371)
- Matt Hall (1) +
- Joren Hammudoglu (3) +
- CY Han (1) +
- Daniel Isaac (4) +
- Maxim Ivanov (1)
- Jakob Jakobson (2)
- Janez Demšar (4) +
- Chris Jerdonek (2) +
- Adam Jones (4) +
- Aditi Juneja (1) +
- Nuri Jung (1) +
- Guus Kamphuis (1) +
- Aditya Karumanchi (2) +
- Robert Kern (5)
- Agriya Khetarpal (10)
- Andrew Knyazev (7)
- Gideon Genadi Kogan (1) +
- Damien LaRocque (1) +
- Eric Larson (10)
- Gregory R. Lee (4)
- Linfye (1) +
- Boyu Liu (1) +
- Drew Allan Loney (1) +
- Christian Lorentzen (1)
- Smit Lunagariya (1)
- Henry Lunn (1) +
- Marco Maggi (4)
- Lauren Main (1) +
- Martin Spišák (1) +
- Mateusz Sokół (4)
- Jan-Kristian Mathisen (1) +
- Nikolay Mayorov (2)
- Nicholas McKibben (1)
- Melissa Weber Mendonça (62)
- João Mendes (10)
- Gian Marco Messa (1) +
- Samuel Le Meur-Diebolt (1) +
- Michał Górny (2)
- Naoto Mizuno (2)
- Nicolas Mokus (2)
- musvaage (18) +
- Andrew Nelson (88)
- Jens Hedegaard Nielsen (1) +
- Roman Nigmatullin (8) +
- Nick ODell (37)
- Yagiz Olmez (4)
- Matti Picus (9)
- Diogo Pires (5) +
- Ilhan Polat (96)
- Zachary Potthoff (1) +
- Tom M. Ragonneau (2)
- Peter Ralph (1) +
- Stephan Rave (1) +
- Tyler Reddy (131)
- redha2404 (2) +
- Ritvik1sharma (1) +
- Érico Nogueira Rolim (1) +
- Heshy Roskes (1)
- Pamphile Roy (34)
- Mikhail Ryazanov (1) +
- Sina Saber (1) +
- Atsushi Sakai (1)
- Clemens Schmid (1) +
- Daniel Schmitz (15)
- Moritz Schreiber (1) +
- Dan Schult (88)
- Searchingdays (1) +
- Matias Senger (1) +
- Scott Shambaugh (1)
- Zhida Shang (1) +
- Sheila-nk (4)
- Romain Simon (2) +
- Gagandeep Singh (31)
- Albert Steppi (36)
- Kai Striega (1)
- Anushka Suyal (143) +
- Alex Szatmary (1)
- Svetlin Tassev (1) +
- Ewout ter Hoeven (1)
- Tibor Völcker (4) +
- Kanishk Tiwari (1) +
- Yusuke Toyama (1) +
- Edgar Andrés Margffoy Tuay (124)
- Adam Turner (2) +
- Nicole Vadot (1) +
- Andrew Valentine (1)
- Christian Veenhuis (2)
- vfdev (2) +
- Pauli Virtanen (2)
- Simon Waldherr (1) +
- Stefan van der Walt (2)
- Warren Weckesser (23)
- Anreas Weh (1)
- Benoît Wygas (2) +
- Pavadol Yamsiri (3) +
- ysard (1) +
- Xiao Yuan (2)
- Irwin Zaid (12)
- Gang Zhao (1)
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (10)
A total of 148 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.
- Python
Published by tylerjereddy over 1 year ago
scipy - SciPy 1.14.1
SciPy 1.14.1 Release Notes
SciPy 1.14.1 adds support for Python 3.13, including binary
wheels on PyPI. Apart from that, it is a bug-fix release with
no new features compared to 1.14.0.
Authors
- Name (commits)
- h-vetinari (1)
- Evgeni Burovski (1)
- CJ Carey (2)
- Lucas Colley (3)
- Ralf Gommers (3)
- Melissa Weber Mendonça (1)
- Andrew Nelson (3)
- Nick ODell (1)
- Tyler Reddy (36)
- Daniel Schmitz (1)
- Dan Schult (4)
- Albert Steppi (2)
- Ewout ter Hoeven (1)
- Tibor Völcker (2) +
- Adam Turner (1) +
- Warren Weckesser (2)
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (1)
A total of 17 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.
- Python
Published by tylerjereddy almost 2 years ago
scipy - SciPy 1.14.0
SciPy 1.14.0 Release Notes
SciPy 1.14.0 is the culmination of 3 months of hard work. It contains
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.14.x branch, and on adding new features on the main branch.
This release requires Python 3.10+ and NumPy 1.23.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- SciPy now supports the new Accelerate library introduced in macOS 13.3, and has wheels built against Accelerate for macOS >=14 resulting in significant performance improvements for many linear algebra operations.
- A new method,
cobyqa, has been added toscipy.optimize.minimize- this is an interface for COBYQA (Constrained Optimization BY Quadratic Approximations), a derivative-free optimization solver, designed to supersede COBYLA, developed by the Department of Applied Mathematics, The Hong Kong Polytechnic University. scipy.sparse.linalg.spsolve_triangularis now more than an order of magnitude faster in many cases.
New features
scipy.fft improvements
- A new function,
scipy.fft.prev_fast_len, has been added. This function finds the largest composite of FFT radices that is less than the target length. It is useful for discarding a minimal number of samples before FFT.
scipy.io improvements
wavfilenow supports reading and writing ofwavfiles in the RF64 format, allowing files greater than 4 GB in size to be handled.
scipy.constants improvements
- Experimental support for the array API standard has been added.
scipy.interpolate improvements
scipy.interpolate.Akima1DInterpolatornow supports extrapolation via theextrapolateargument.
scipy.optimize improvements
scipy.optimize.HessianUpdateStrategynow also accepts square arrays forinit_scale.- A new method,
cobyqa, has been added toscipy.optimize.minimize- this is an interface for COBYQA (Constrained Optimization BY Quadratic Approximations), a derivative-free optimization solver, designed to supersede COBYLA, developed by the Department of Applied Mathematics, The Hong Kong Polytechnic University. - There are some performance improvements in
scipy.optimize.differential_evolution. scipy.optimize.approx_fprimenow has linear space complexity.
scipy.signal improvements
scipy.signal.minimum_phasehas a new argumenthalf, allowing the provision of a filter of the same length as the linear-phase FIR filter coefficients and with the same magnitude spectrum.
scipy.sparse improvements
- Sparse arrays now support 1D shapes in COO, DOK and CSR formats. These are all the formats we currently intend to support 1D shapes. Other sparse array formats raise an exception for 1D input.
- Sparse array methods min/nanmin/argmin and max analogs now return 1D arrays.
Results are still COO format sparse arrays for min/nanmin and
dense
np.ndarrayfor argmin. - Iterating over
csr_arrayorcsc_arrayyields 1D (CSC) arrays. - Sparse matrix and array objects improve their
reprandstroutput. - A special case has been added to handle multiplying a
dia_arrayby a scalar, which avoids a potentially costly conversion to CSR format. scipy.sparse.csgraph.yenhas been added, allowing usage of Yen's K-Shortest Paths algorithm on a directed on undirected graph.- Addition between DIA-format sparse arrays and matrices is now faster.
scipy.sparse.linalg.spsolve_triangularis now more than an order of magnitude faster in many cases.
scipy.spatial improvements
Rotationsupports an alternative "scalar-first" convention of quaternion component ordering. It is available via the keyword argumentscalar_firstoffrom_quatandas_quatmethods.- Some minor performance improvements for inverting of
Rotationobjects.
scipy.special improvements
- Added
scipy.special.log_wright_bessel, for calculation of the logarithm of Wright's Bessel function. - The relative error in
scipy.special.hyp2f1calculations has improved substantially. - Improved behavior of
boxcox,inv_boxcox,boxcox1p, andinv_boxcox1pby preventing premature overflow.
scipy.stats improvements
- A new function
scipy.stats.powercan be used for simulating the power of a hypothesis test with respect to a specified alternative. - The Irwin-Hall (AKA Uniform Sum) distribution has been added as
scipy.stats.irwinhall. - Exact p-value calculations of
scipy.stats.mannwhitneyuare much faster and use less memory. scipy.stats.pearsonrnow accepts n-D arrays and computes the statistic along a specifiedaxis.scipy.stats.kstat,scipy.stats.kstatvar, andscipy.stats.bartlettare faster at performing calculations along an axis of a large n-D array.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, or CuPy arrays as array arguments.
As of 1.14.0, there is support for
scipy.clusterscipy.fftscipy.constantsscipy.special: (select functions)scipy.special.log_ndtrscipy.special.ndtrscipy.special.ndtriscipy.special.erfscipy.special.erfcscipy.special.i0scipy.special.i0escipy.special.i1scipy.special.i1escipy.special.gammalnscipy.special.gammaincscipy.special.gammainccscipy.special.logitscipy.special.expitscipy.special.entrscipy.special.rel_entrscipy.special.xlogyscipy.special.chdtrc
scipy.stats: (select functions)scipy.stats.describescipy.stats.momentscipy.stats.skewscipy.stats.kurtosisscipy.stats.kstatscipy.stats.kstatvarscipy.stats.circmeanscipy.stats.circvarscipy.stats.circstdscipy.stats.entropyscipy.stats.variationscipy.stats.semscipy.stats.ttest_1sampscipy.stats.pearsonrscipy.stats.chisquarescipy.stats.skewtestscipy.stats.kurtosistestscipy.stats.normaltestscipy.stats.jarque_berascipy.stats.bartlettscipy.stats.power_divergencescipy.stats.monte_carlo_test
Deprecated features
scipy.stats.gstd,scipy.stats.chisquare, andscipy.stats.power_divergencehave deprecated support for masked array input.scipy.stats.linregresshas deprecated support for specifying both samples in one argument;xandyare to be provided as separate arguments.- The
conjtranspmethod forscipy.sparse.dok_arrayandscipy.sparse.dok_matrixhas been deprecated and will be removed in SciPy 1.16.0. - The option
quadrature="trapz"inscipy.integrate.quad_vechas been deprecated in favour ofquadrature="trapezoid"and will be removed in SciPy 1.16.0. scipy.special.{comb,perm}have deprecated support for use ofexact=Truein conjunction with non-integralNand/ork.
Backwards incompatible changes
- Many
scipy.statsfunctions now produce a standardized warning message when an input sample is too small (e.g. zero size). Previously, these functions may have raised an error, emitted one or more less informative warnings, or emitted no warnings. In most cases, returned results are unchanged; in almost all cases the correct result isNaN.
Expired deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- Several previously deprecated methods for sparse arrays were removed:
asfptype,getrow,getcol,get_shape,getmaxprint,set_shape,getnnz, andgetformat. Additionally, the.Aand.Hattributes were removed. scipy.integrate.{simps,trapz,cumtrapz}have been removed in favour ofsimpson,trapezoid, andcumulative_trapezoid.- The
tolargument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk, mres,lgmres,minres,qmr,tfqmr}has been removed in favour ofrtol. Furthermore, the default value ofatolfor these functions has changed to0.0. - The
restrtargument ofscipy.sparse.linalg.gmreshas been removed in favour ofrestart. - The
initial_lexsortargument ofscipy.stats.kendalltauhas been removed. - The
condandrcondarguments ofscipy.linalg.pinvhave been removed. - The
evenargument ofscipy.integrate.simpsonhas been removed. - The
turboandeigvalsarguments fromscipy.linalg.{eigh,eigvalsh}have been removed. - The
legacyargument ofscipy.special.combhas been removed. - The
hz/nyqargument ofsignal.{firls, firwin, firwin2, remez}has been removed. - Objects that weren't part of the public interface but were accessible through deprecated submodules have been removed.
float128,float96, and object arrays now raise an error inscipy.signal.medfiltandscipy.signal.order_filter.scipy.interpolate.interp2dhas been replaced by an empty stub (to be removed completely in the future).Coinciding with changes to function signatures (e.g. removal of a deprecated keyword), we had deprecated positional use of keyword arguments for the affected functions, which will now raise an error. Affected functions are:
sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}stats.kendalltaulinalg.pinvintegrate.simpsonlinalg.{eigh,eigvalsh}special.combsignal.{firls, firwin, firwin2, remez}
Other changes
- SciPy now uses C17 as the C standard to build with, instead of C99. The C++ standard remains C++17.
- macOS Accelerate, which got a major upgrade in macOS 13.3, is now supported. This results in significant performance improvements for linear algebra operations, as well as smaller binary wheels.
- Cross-compilation should be smoother and QEMU or similar is no longer needed to run the cross interpreter.
- Experimental array API support for the JAX backend has been added to several parts of SciPy.
Authors
- Name (commits)
- h-vetinari (34)
- Steven Adams (1) +
- Max Aehle (1) +
- Ataf Fazledin Ahamed (2) +
- Luiz Eduardo Amaral (1) +
- Trinh Quoc Anh (1) +
- Miguel A. Batalla (7) +
- Tim Beyer (1) +
- Andrea Blengino (1) +
- boatwrong (1)
- Jake Bowhay (51)
- Dietrich Brunn (2)
- Evgeni Burovski (177)
- Tim Butters (7) +
- CJ Carey (5)
- Sean Cheah (46)
- Lucas Colley (73)
- Giuseppe "Peppe" Dilillo (1) +
- DWesl (2)
- Pieter Eendebak (5)
- Kenji S Emerson (1) +
- Jonas Eschle (1)
- fancidev (2)
- Anthony Frazier (1) +
- Ilan Gold (1) +
- Ralf Gommers (125)
- Rohit Goswami (28)
- Ben Greiner (1) +
- Lorenzo Gualniera (1) +
- Matt Haberland (260)
- Shawn Hsu (1) +
- Budjen Jovan (3) +
- Jozsef Kutas (1)
- Eric Larson (3)
- Gregory R. Lee (4)
- Philip Loche (1) +
- Christian Lorentzen (5)
- Sijo Valayakkad Manikandan (2) +
- marinelay (2) +
- Nikolay Mayorov (1)
- Nicholas McKibben (2)
- Melissa Weber Mendonça (7)
- João Mendes (1) +
- Samuel Le Meur-Diebolt (1) +
- Tomiță Militaru (2) +
- Andrew Nelson (35)
- Lysandros Nikolaou (1)
- Nick ODell (5) +
- Jacob Ogle (1) +
- Pearu Peterson (1)
- Matti Picus (5)
- Ilhan Polat (9)
- pwcnorthrop (3) +
- Bharat Raghunathan (1)
- Tom M. Ragonneau (2) +
- Tyler Reddy (101)
- Pamphile Roy (18)
- Atsushi Sakai (9)
- Daniel Schmitz (5)
- Julien Schueller (2) +
- Dan Schult (13)
- Tomer Sery (7)
- Scott Shambaugh (4)
- Tuhin Sharma (1) +
- Sheila-nk (4)
- Skylake (1) +
- Albert Steppi (215)
- Kai Striega (6)
- Zhibing Sun (2) +
- Nimish Telang (1) +
- toofooboo (1) +
- tpl2go (1) +
- Edgar Andrés Margffoy Tuay (44)
- Andrew Valentine (1)
- Valerix (1) +
- Christian Veenhuis (1)
- void (2) +
- Warren Weckesser (3)
- Xuefeng Xu (1)
- Rory Yorke (1)
- Xiao Yuan (1)
- Irwin Zaid (35)
- Elmar Zander (1) +
- Zaikun ZHANG (1)
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (4) +
A total of 85 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.
- Python
Published by tylerjereddy almost 2 years ago
scipy - SciPy 1.14.0rc2
SciPy 1.14.0 Release Notes
Note: SciPy 1.14.0 is not released yet!
SciPy 1.14.0 is the culmination of 3 months of hard work. It contains
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.14.x branch, and on adding new features on the main branch.
This release requires Python 3.10+ and NumPy 1.23.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- SciPy now supports the new Accelerate library introduced in macOS 13.3, and has wheels built against Accelerate for macOS >=14 resulting in significant performance improvements for many linear algebra operations.
- A new method,
cobyqa, has been added toscipy.optimize.minimize- this is an interface for COBYQA (Constrained Optimization BY Quadratic Approximations), a derivative-free optimization solver, designed to supersede COBYLA, developed by the Department of Applied Mathematics, The Hong Kong Polytechnic University. scipy.sparse.linalg.spsolve_triangularis now more than an order of magnitude faster in many cases.
New features
scipy.fft improvements
- A new function,
scipy.fft.prev_fast_len, has been added. This function finds the largest composite of FFT radices that is less than the target length. It is useful for discarding a minimal number of samples before FFT.
scipy.io improvements
wavfilenow supports reading and writing ofwavfiles in the RF64 format, allowing files greater than 4 GB in size to be handled.
scipy.constants improvements
- Experimental support for the array API standard has been added.
scipy.interpolate improvements
scipy.interpolate.Akima1DInterpolatornow supports extrapolation via theextrapolateargument.
scipy.optimize improvements
scipy.optimize.HessianUpdateStrategynow also accepts square arrays forinit_scale.- A new method,
cobyqa, has been added toscipy.optimize.minimize- this is an interface for COBYQA (Constrained Optimization BY Quadratic Approximations), a derivative-free optimization solver, designed to supersede COBYLA, developed by the Department of Applied Mathematics, The Hong Kong Polytechnic University. - There are some performance improvements in
scipy.optimize.differential_evolution. scipy.optimize.approx_fprimenow has linear space complexity.
scipy.signal improvements
scipy.signal.minimum_phasehas a new argumenthalf, allowing the provision of a filter of the same length as the linear-phase FIR filter coefficients and with the same magnitude spectrum.
scipy.sparse improvements
- Sparse arrays now support 1D shapes in COO, DOK and CSR formats. These are all the formats we currently intend to support 1D shapes. Other sparse array formats raise an exception for 1D input.
- Sparse array methods min/nanmin/argmin and max analogs now return 1D arrays.
Results are still COO format sparse arrays for min/nanmin and
dense
np.ndarrayfor argmin. - Sparse matrix and array objects improve their
reprandstroutput. - A special case has been added to handle multiplying a
dia_arrayby a scalar, which avoids a potentially costly conversion to CSR format. scipy.sparse.csgraph.yenhas been added, allowing usage of Yen's K-Shortest Paths algorithm on a directed on undirected graph.- Addition between DIA-format sparse arrays and matrices is now faster.
scipy.sparse.linalg.spsolve_triangularis now more than an order of magnitude faster in many cases.
scipy.spatial improvements
Rotationsupports an alternative "scalar-first" convention of quaternion component ordering. It is available via the keyword argumentscalar_firstoffrom_quatandas_quatmethods.- Some minor performance improvements for inverting of
Rotationobjects.
scipy.special improvements
- Added
scipy.special.log_wright_bessel, for calculation of the logarithm of Wright's Bessel function. - The relative error in
scipy.special.hyp2f1calculations has improved substantially. - Improved behavior of
boxcox,inv_boxcox,boxcox1p, andinv_boxcox1pby preventing premature overflow.
scipy.stats improvements
- A new function
scipy.stats.powercan be used for simulating the power of a hypothesis test with respect to a specified alternative. - The Irwin-Hall (AKA Uniform Sum) distribution has been added as
scipy.stats.irwinhall. - Exact p-value calculations of
scipy.stats.mannwhitneyuare much faster and use less memory. scipy.stats.pearsonrnow accepts n-D arrays and computes the statistic along a specifiedaxis.scipy.stats.kstat,scipy.stats.kstatvar, andscipy.stats.bartlettare faster at performing calculations along an axis of a large n-D array.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, or CuPy arrays as array arguments.
As of 1.14.0, there is support for
scipy.clusterscipy.fftscipy.constantsscipy.special: (select functions)scipy.special.log_ndtrscipy.special.ndtrscipy.special.ndtriscipy.special.erfscipy.special.erfcscipy.special.i0scipy.special.i0escipy.special.i1scipy.special.i1escipy.special.gammalnscipy.special.gammaincscipy.special.gammainccscipy.special.logitscipy.special.expitscipy.special.entrscipy.special.rel_entrscipy.special.xlogyscipy.special.chdtrc
scipy.stats: (select functions)scipy.stats.describescipy.stats.momentscipy.stats.skewscipy.stats.kurtosisscipy.stats.kstatscipy.stats.kstatvarscipy.stats.circmeanscipy.stats.circvarscipy.stats.circstdscipy.stats.entropyscipy.stats.variationscipy.stats.semscipy.stats.ttest_1sampscipy.stats.pearsonrscipy.stats.chisquarescipy.stats.skewtestscipy.stats.kurtosistestscipy.stats.normaltestscipy.stats.jarque_berascipy.stats.bartlettscipy.stats.power_divergencescipy.stats.monte_carlo_test
Deprecated features
scipy.stats.gstd,scipy.stats.chisquare, andscipy.stats.power_divergencehave deprecated support for masked array input.scipy.stats.linregresshas deprecated support for specifying both samples in one argument;xandyare to be provided as separate arguments.- The
conjtranspmethod forscipy.sparse.dok_arrayandscipy.sparse.dok_matrixhas been deprecated and will be removed in SciPy 1.16.0. - The option
quadrature="trapz"inscipy.integrate.quad_vechas been deprecated in favour ofquadrature="trapezoid"and will be removed in SciPy 1.16.0. scipy.special.combhas deprecated support for use ofexact=Truein conjunction with non-integralNand/ork.
Backwards incompatible changes
- Many
scipy.statsfunctions now produce a standardized warning message when an input sample is too small (e.g. zero size). Previously, these functions may have raised an error, emitted one or more less informative warnings, or emitted no warnings. In most cases, returned results are unchanged; in almost all cases the correct result isNaN.
Expired deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- Several previously deprecated methods for sparse arrays were removed:
asfptype,getrow,getcol,get_shape,getmaxprint,set_shape,getnnz, andgetformat. Additionally, the.Aand.Hattributes were removed. scipy.integrate.{simps,trapz,cumtrapz}have been removed in favour ofsimpson,trapezoid, andcumulative_trapezoid.- The
tolargument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk, mres,lgmres,minres,qmr,tfqmr}has been removed in favour ofrtol. Furthermore, the default value ofatolfor these functions has changed to0.0. - The
restrtargument ofscipy.sparse.linalg.gmreshas been removed in favour ofrestart. - The
initial_lexsortargument ofscipy.stats.kendalltauhas been removed. - The
condandrcondarguments ofscipy.linalg.pinvhave been removed. - The
evenargument ofscipy.integrate.simpsonhas been removed. - The
turboandeigvalsarguments fromscipy.linalg.{eigh,eigvalsh}have been removed. - The
legacyargument ofscipy.special.combhas been removed. - The
hz/nyqargument ofsignal.{firls, firwin, firwin2, remez}has been removed. - Objects that weren't part of the public interface but were accessible through deprecated submodules have been removed.
float128,float96, and object arrays now raise an error inscipy.signal.medfiltandscipy.signal.order_filter.scipy.interpolate.interp2dhas been replaced by an empty stub (to be removed completely in the future).Coinciding with changes to function signatures (e.g. removal of a deprecated keyword), we had deprecated positional use of keyword arguments for the affected functions, which will now raise an error. Affected functions are:
sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}stats.kendalltaulinalg.pinvintegrate.simpsonlinalg.{eigh,eigvalsh}special.combsignal.{firls, firwin, firwin2, remez}
Other changes
- SciPy now uses C17 as the C standard to build with, instead of C99. The C++ standard remains C++17.
- macOS Accelerate, which got a major upgrade in macOS 13.3, is now supported. This results in significant performance improvements for linear algebra operations, as well as smaller binary wheels.
- Cross-compilation should be smoother and QEMU or similar is no longer needed to run the cross interpreter.
- Experimental array API support for the JAX backend has been added to several parts of SciPy.
Authors
- Name (commits)
- h-vetinari (33)
- Steven Adams (1) +
- Max Aehle (1) +
- Ataf Fazledin Ahamed (2) +
- Luiz Eduardo Amaral (1) +
- Trinh Quoc Anh (1) +
- Miguel A. Batalla (7) +
- Tim Beyer (1) +
- Andrea Blengino (1) +
- boatwrong (1)
- Jake Bowhay (50)
- Dietrich Brunn (2)
- Evgeni Burovski (177)
- Tim Butters (7) +
- CJ Carey (5)
- Sean Cheah (46)
- Lucas Colley (72)
- Giuseppe "Peppe" Dilillo (1) +
- DWesl (2)
- Pieter Eendebak (5)
- Kenji S Emerson (1) +
- Jonas Eschle (1)
- fancidev (2)
- Anthony Frazier (1) +
- Ilan Gold (1) +
- Ralf Gommers (124)
- Rohit Goswami (28)
- Ben Greiner (1) +
- Lorenzo Gualniera (1) +
- Matt Haberland (256)
- Shawn Hsu (1) +
- Budjen Jovan (3) +
- Jozsef Kutas (1)
- Eric Larson (3)
- Gregory R. Lee (4)
- Philip Loche (1) +
- Christian Lorentzen (5)
- Sijo Valayakkad Manikandan (2) +
- marinelay (2) +
- Nikolay Mayorov (1)
- Nicholas McKibben (2)
- Melissa Weber Mendonça (7)
- João Mendes (1) +
- Samuel Le Meur-Diebolt (1) +
- Tomiță Militaru (2) +
- Andrew Nelson (35)
- Lysandros Nikolaou (1)
- Nick ODell (5) +
- Jacob Ogle (1) +
- Pearu Peterson (1)
- Matti Picus (5)
- Ilhan Polat (8)
- pwcnorthrop (3) +
- Bharat Raghunathan (1)
- Tom M. Ragonneau (2) +
- Tyler Reddy (84)
- Pamphile Roy (18)
- Atsushi Sakai (9)
- Daniel Schmitz (5)
- Julien Schueller (2) +
- Dan Schult (13)
- Tomer Sery (7)
- Scott Shambaugh (4)
- Tuhin Sharma (1) +
- Sheila-nk (4)
- Skylake (1) +
- Albert Steppi (215)
- Kai Striega (6)
- Zhibing Sun (2) +
- Nimish Telang (1) +
- toofooboo (1) +
- tpl2go (1) +
- Edgar Andrés Margffoy Tuay (44)
- Andrew Valentine (1)
- Valerix (1) +
- Christian Veenhuis (1)
- void (2) +
- Warren Weckesser (3)
- Xuefeng Xu (1)
- Rory Yorke (1)
- Xiao Yuan (1)
- Irwin Zaid (35)
- Elmar Zander (1) +
- Zaikun ZHANG (1)
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (4) +
A total of 85 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.
- Python
Published by tylerjereddy almost 2 years ago
scipy - SciPy 1.14.0rc1
SciPy 1.14.0 Release Notes
Note: SciPy 1.14.0 is not released yet!
SciPy 1.14.0 is the culmination of 3 months of hard work. It contains
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.14.x branch, and on adding new features on the main branch.
This release requires Python 3.10+ and NumPy 1.23.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- SciPy now supports the new Accelerate library introduced in macOS 13.3, and has wheels built against Accelerate for macOS >=14 resulting in significant performance improvements for many linear algebra operations.
- A new method,
cobyqa, has been added toscipy.optimize.minimize- this is an interface for COBYQA (Constrained Optimization BY Quadratic Approximations), a derivative-free optimization solver, designed to supersede COBYLA, developed by the Department of Applied Mathematics, The Hong Kong Polytechnic University. scipy.sparse.linalg.spsolve_triangularis now more than an order of magnitude faster in many cases.
New features
scipy.fft improvements
- A new function,
scipy.fft.prev_fast_len, has been added. This function finds the largest composite of FFT radices that is less than the target length. It is useful for discarding a minimal number of samples before FFT.
scipy.io improvements
wavfilenow supports reading and writing ofwavfiles in the RF64 format, allowing files greater than 4 GB in size to be handled.
scipy.constants improvements
- Experimental support for the array API standard has been added.
scipy.interpolate improvements
scipy.interpolate.Akima1DInterpolatornow supports extrapolation via theextrapolateargument.
scipy.optimize improvements
scipy.optimize.HessianUpdateStrategynow also accepts square arrays forinit_scale.- A new method,
cobyqa, has been added toscipy.optimize.minimize- this is an interface for COBYQA (Constrained Optimization BY Quadratic Approximations), a derivative-free optimization solver, designed to supersede COBYLA, developed by the Department of Applied Mathematics, The Hong Kong Polytechnic University. - There are some performance improvements in
scipy.optimize.differential_evolution. scipy.optimize.approx_fprimenow has linear space complexity.
scipy.signal improvements
scipy.signal.minimum_phasehas a new argumenthalf, allowing the provision of a filter of the same length as the linear-phase FIR filter coefficients and with the same magnitude spectrum.
scipy.sparse improvements
- A special case has been added to handle multiplying a
dia_arrayby a scalar, which avoids a potentially costly conversion to CSR format. scipy.sparse.csgraph.yenhas been added, allowing usage of Yen's K-Shortest Paths algorithm on a directed on undirected graph.- Addition between DIA-format sparse arrays and matrices is now faster.
scipy.sparse.linalg.spsolve_triangularis now more than an order of magnitude faster in many cases.
scipy.spatial improvements
Rotationsupports an alternative "scalar-first" convention of quaternion component ordering. It is available via the keyword argumentscalar_firstoffrom_quatandas_quatmethods.- Some minor performance improvements for inverting of
Rotationobjects.
scipy.special improvements
- Added
scipy.special.log_wright_bessel, for calculation of the logarithm of Wright's Bessel function. - The relative error in
scipy.special.hyp2f1calculations has improved substantially. - Improved behavior of
boxcox,inv_boxcox,boxcox1p, andinv_boxcox1pby preventing premature overflow.
scipy.stats improvements
- A new function
scipy.stats.powercan be used for simulating the power of a hypothesis test with respect to a specified alternative. - The Irwin-Hall (AKA Uniform Sum) distribution has been added as
scipy.stats.irwinhall. - Exact p-value calculations of
scipy.stats.mannwhitneyuare much faster and use less memory. scipy.stats.pearsonrnow accepts n-D arrays and computes the statistic along a specifiedaxis.scipy.stats.kstat,scipy.stats.kstatvar, andscipy.stats.bartlettare faster at performing calculations along an axis of a large n-D array.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, or CuPy arrays as array arguments.
As of 1.14.0, there is support for
scipy.clusterscipy.fftscipy.constantsscipy.special: (select functions)scipy.special.log_ndtrscipy.special.ndtrscipy.special.ndtriscipy.special.erfscipy.special.erfcscipy.special.i0scipy.special.i0escipy.special.i1scipy.special.i1escipy.special.gammalnscipy.special.gammaincscipy.special.gammainccscipy.special.logitscipy.special.expitscipy.special.entrscipy.special.rel_entrscipy.special.xlogyscipy.special.chdtrc
scipy.stats: (select functions)scipy.stats.momentscipy.stats.skewscipy.stats.kurtosisscipy.stats.kstatscipy.stats.kstatvarscipy.stats.circmeanscipy.stats.circvarscipy.stats.circstdscipy.stats.entropyscipy.stats.variationscipy.stats.semscipy.stats.ttest_1sampscipy.stats.pearsonrscipy.stats.chisquarescipy.stats.skewtestscipy.stats.kurtosistestscipy.stats.normaltestscipy.stats.jarque_berascipy.stats.bartlettscipy.stats.power_divergencescipy.stats.monte_carlo_test
Deprecated features
scipy.stats.gstd,scipy.stats.chisquare, andscipy.stats.power_divergencehave deprecated support for masked array input.scipy.stats.linregresshas deprecated support for specifying both samples in one argument;xandyare to be provided as separate arguments.- The
conjtranspmethod forscipy.sparse.dok_arrayandscipy.sparse.dok_matrixhas been deprecated and will be removed in SciPy 1.16.0. - The option
quadrature="trapz"inscipy.integrate.quad_vechas been deprecated in favour ofquadrature="trapezoid"and will be removed in SciPy 1.16.0. scipy.special.combhas deprecated support for use ofexact=Truein conjunction with non-integralNand/ork.
Backwards incompatible changes
- Many
scipy.statsfunctions now produce a standardized warning message when an input sample is too small (e.g. zero size). Previously, these functions may have raised an error, emitted one or more less informative warnings, or emitted no warnings. In most cases, returned results are unchanged; in almost all cases the correct result isNaN.
Expired deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- Several previously deprecated methods for sparse arrays were removed:
asfptype,getrow,getcol,get_shape,getmaxprint,set_shape,getnnz, andgetformat. Additionally, the.Aand.Hattributes were removed. scipy.integrate.{simps,trapz,cumtrapz}have been removed in favour ofsimpson,trapezoid, andcumulative_trapezoid.- The
tolargument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk, mres,lgmres,minres,qmr,tfqmr}has been removed in favour ofrtol. Furthermore, the default value ofatolfor these functions has changed to0.0. - The
restrtargument ofscipy.sparse.linalg.gmreshas been removed in favour ofrestart. - The
initial_lexsortargument ofscipy.stats.kendalltauhas been removed. - The
condandrcondarguments ofscipy.linalg.pinvhave been removed. - The
evenargument ofscipy.integrate.simpsonhas been removed. - The
turboandeigvalsarguments fromscipy.linalg.{eigh,eigvalsh}have been removed. - The
legacyargument ofscipy.special.combhas been removed. - The
hz/nyqargument ofsignal.{firls, firwin, firwin2, remez}has been removed. - Objects that weren't part of the public interface but were accessible through deprecated submodules have been removed.
float128,float96, and object arrays now raise an error inscipy.signal.medfiltandscipy.signal.order_filter.scipy.interpolate.interp2dhas been replaced by an empty stub (to be removed completely in the future).Coinciding with changes to function signatures (e.g. removal of a deprecated keyword), we had deprecated positional use of keyword arguments for the affected functions, which will now raise an error. Affected functions are:
sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}stats.kendalltaulinalg.pinvintegrate.simpsonlinalg.{eigh,eigvalsh}special.combsignal.{firls, firwin, firwin2, remez}
Other changes
- SciPy now uses C17 as the C standard to build with, instead of C99. The C++ standard remains C++17.
- macOS Accelerate, which got a major upgrade in macOS 13.3, is now supported. This results in significant performance improvements for linear algebra operations, as well as smaller binary wheels.
- Cross-compilation should be smoother and QEMU or similar is no longer needed to run the cross interpreter.
- Experimental array API support for the JAX backend has been added to several parts of SciPy.
Authors
- Name (commits)
- h-vetinari (30)
- Steven Adams (1) +
- Max Aehle (1) +
- Ataf Fazledin Ahamed (2) +
- Trinh Quoc Anh (1) +
- Miguel A. Batalla (7) +
- Tim Beyer (1) +
- Andrea Blengino (1) +
- boatwrong (1)
- Jake Bowhay (47)
- Dietrich Brunn (2)
- Evgeni Burovski (174)
- Tim Butters (7) +
- CJ Carey (5)
- Sean Cheah (46)
- Lucas Colley (72)
- Giuseppe "Peppe" Dilillo (1) +
- DWesl (2)
- Pieter Eendebak (5)
- Kenji S Emerson (1) +
- Jonas Eschle (1)
- fancidev (2)
- Anthony Frazier (1) +
- Ilan Gold (1) +
- Ralf Gommers (122)
- Rohit Goswami (28)
- Ben Greiner (1) +
- Lorenzo Gualniera (1) +
- Matt Haberland (250)
- Shawn Hsu (1) +
- Budjen Jovan (3) +
- Jozsef Kutas (1)
- Eric Larson (3)
- Gregory R. Lee (4)
- Philip Loche (1) +
- Christian Lorentzen (5)
- Sijo Valayakkad Manikandan (2) +
- marinelay (2) +
- Nikolay Mayorov (1)
- Nicholas McKibben (2)
- Melissa Weber Mendonça (6)
- João Mendes (1) +
- Tomiță Militaru (2) +
- Andrew Nelson (32)
- Lysandros Nikolaou (1)
- Nick ODell (5) +
- Jacob Ogle (1) +
- Pearu Peterson (1)
- Matti Picus (4)
- Ilhan Polat (8)
- pwcnorthrop (3) +
- Bharat Raghunathan (1)
- Tom M. Ragonneau (2) +
- Tyler Reddy (47)
- Pamphile Roy (17)
- Atsushi Sakai (9)
- Daniel Schmitz (5)
- Julien Schueller (2) +
- Dan Schult (12)
- Tomer Sery (7)
- Scott Shambaugh (4)
- Tuhin Sharma (1) +
- Sheila-nk (4)
- Skylake (1) +
- Albert Steppi (214)
- Kai Striega (6)
- Zhibing Sun (2) +
- Nimish Telang (1) +
- toofooboo (1) +
- tpl2go (1) +
- Edgar Andrés Margffoy Tuay (44)
- Valerix (1) +
- Christian Veenhuis (1)
- void (2) +
- Warren Weckesser (3)
- Xuefeng Xu (1)
- Rory Yorke (1)
- Xiao Yuan (1)
- Irwin Zaid (35)
- Elmar Zander (1) +
- ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (2) +
A total of 81 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.
- Python
Published by tylerjereddy almost 2 years ago
scipy - SciPy 1.13.1
SciPy 1.13.1 Release Notes
SciPy 1.13.1 is a bug-fix release with no new features
compared to 1.13.0. The version of OpenBLAS shipped with
the PyPI binaries has been increased to 0.3.27.
Authors
- Name (commits)
- h-vetinari (1)
- Jake Bowhay (2)
- Evgeni Burovski (6)
- Sean Cheah (2)
- Lucas Colley (2)
- DWesl (2)
- Ralf Gommers (7)
- Ben Greiner (1) +
- Matt Haberland (2)
- Gregory R. Lee (1)
- Philip Loche (1) +
- Sijo Valayakkad Manikandan (1) +
- Matti Picus (1)
- Tyler Reddy (62)
- Atsushi Sakai (1)
- Daniel Schmitz (2)
- Dan Schult (3)
- Scott Shambaugh (2)
- Edgar Andrés Margffoy Tuay (1)
A total of 19 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.
- Python
Published by tylerjereddy about 2 years ago
scipy - SciPy 1.13.0
SciPy 1.13.0 Release Notes
SciPy 1.13.0 is the culmination of 3 months of hard work. This
out-of-band release aims to support NumPy 2.0.0, and is backwards
compatible to NumPy 1.22.4. The version of OpenBLAS used to build
the PyPI wheels has been increased to 0.3.26.dev.
This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Support for NumPy
2.0.0. - Interactive examples have been added to the documentation, allowing users to run the examples locally on embedded Jupyterlite notebooks in their browser.
- Preliminary 1D array support for the COO and DOK sparse formats.
- Several
scipy.statsfunctions have gained support for additionalaxis,nan_policy, andkeepdimsarguments.scipy.statsalso has several performance and accuracy improvements.
New features
scipy.integrate improvements
- The
terminalattribute ofscipy.integrate.solve_ivpeventscallables now additionally accepts integer values to specify a number of occurrences required for termination, rather than the previous restriction of only accepting aboolvalue to terminate on the first registered event.
scipy.io improvements
scipy.io.wavfile.writehas improveddtypeinput validation.
scipy.interpolate improvements
- The Modified Akima Interpolation has been added to
interpolate.Akima1DInterpolator, available via the newmethodargument. - New method
BSpline.insert_knotinserts a knot into aBSplineinstance. This routine is similar to the module-levelscipy.interpolate.insertfunction, and works with the BSpline objects instead oftcktuples. RegularGridInterpolatorgained the functionality to compute derivatives in place. For instance,RegularGridInterolator((x, y), values, method="cubic")(xi, nu=(1, 1))evaluates the mixed second derivative, :math:\partial^2 / \partial x \partial yatxi.- Performance characteristics of tensor-product spline methods of
RegularGridInterpolatorhave been changed: evaluations should be significantly faster, while construction might be slower. If you experience issues with construction times, you may need to experiment with optional keyword argumentssolverandsolver_args. Previous behavior (fast construction, slow evaluations) can be obtained via"*_legacy"methods:method="cubic_legacy"is exactly equivalent tomethod="cubic"in previous releases. Seegh-19633for details.
scipy.signal improvements
- Many filter design functions now have improved input validation for the
sampling frequency (
fs).
scipy.sparse improvements
coo_arraynow supports 1D shapes, and has additional 1D support formin,max,argmin, andargmax. The DOK format now has preliminary 1D support as well, though only supports simple integer indices at the time of writing.- Experimental support has been added for
pydata/sparsearray inputs toscipy.sparse.csgraph. dok_arrayanddok_matrixnow have proper implementations offromkeys.csrandcscformats now have improvedsetdiagperformance.
scipy.spatial improvements
voronoi_plot_2dnow draws Voronoi edges to infinity more clearly when the aspect ratio is skewed.
scipy.special improvements
- All Fortran code, namely,
AMOS,specfun, andcdfliblibraries that the majority of special functions depend on, is ported to Cython/C. - The function
factorialknow also supports faster, approximate calculation usingexact=False.
scipy.stats improvements
scipy.stats.rankdataandscipy.stats.wilcoxonhave been vectorized, improving their performance and the performance of hypothesis tests that depend on them.stats.mannwhitneyushould now be faster due to a vectorized statistic calculation, improved caching, improved exploitation of symmetry, and a memory reduction.PermutationMethodsupport was also added.scipy.stats.moodnow hasnan_policyandkeepdimssupport.scipy.stats.brunnermunzelnow hasaxisandkeepdimssupport.scipy.stats.friedmanchisquare,scipy.stats.shapiro,scipy.stats.normaltest,scipy.stats.skewtest,scipy.stats.kurtosistest,scipy.stats.f_oneway,scipy.stats.alexandergovern,scipy.stats.combine_pvalues, andscipy.stats.kstesthave gainedaxis,nan_policyandkeepdimssupport.scipy.stats.boxcox_normmaxhas gained aymaxparameter to allow user specification of the maximum value of the transformed data.scipy.stats.vonmisespdfmethod has been extended to supportkappa=0. Thefitmethod is also more performant due to the use of non-trivial bounds to solve forkappa.- High order
momentcalculations forscipy.stats.powerlaware now more accurate. - The
fitmethods ofscipy.stats.gamma(withmethod='mm') andscipy.stats.loglaplaceare faster and more reliable. scipy.stats.goodness_of_fitnow supports the use of a customstatisticprovided by the user.scipy.stats.wilcoxonnow supportsPermutationMethod, enabling calculation of accurate p-values in the presence of ties and zeros.scipy.stats.monte_carlo_testnow has improved robustness in the face of numerical noise.scipy.stats.wasserstein_distance_ndwas introduced to compute the Wasserstein-1 distance between two N-D discrete distributions.
Deprecated features
- Complex dtypes in
PchipInterpolatorandAkima1DInterpolatorhave been deprecated and will raise an error in SciPy 1.15.0. If you are trying to use the real components of the passed array, usenp.realony. - Non-integer values of
ntogether withexact=Trueare deprecated forscipy.special.factorial.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
- scipy.signal.{lsim2,impulse2,step2} have been removed in favour of
scipy.signal.{lsim,impulse,step}.
- Window functions can no longer be imported from the scipy.signal namespace and
instead should be accessed through either scipy.signal.windows or
scipy.signal.get_window.
- scipy.sparse no longer supports multi-Ellipsis indexing
- scipy.signal.{bspline,quadratic,cubic} have been removed in favour of alternatives
in scipy.interpolate.
- scipy.linalg.tri{,u,l} have been removed in favour of numpy.tri{,u,l}.
- Non-integer arrays in scipy.special.factorial with exact=True now raise an
error.
- Functions from NumPy's main namespace which were exposed in SciPy's main
namespace, such as numpy.histogram exposed by scipy.histogram, have
been removed from SciPy's main namespace. Please use the functions directly
from numpy. This was originally performed for SciPy 1.12.0 however was missed from
the release notes so is included here for completeness.
Backwards incompatible changes
Other changes
- The second argument of
scipy.stats.momenthas been renamed toorderwhile maintaining backward compatibility.
Authors
- Name (commits)
- h-vetinari (50)
- acceptacross (1) +
- Petteri Aimonen (1) +
- Francis Allanah (2) +
- Jonas Kock am Brink (1) +
- anupriyakkumari (12) +
- Aman Atman (2) +
- Aaditya Bansal (1) +
- Christoph Baumgarten (2)
- Sebastian Berg (4)
- Nicolas Bloyet (2) +
- Matt Borland (1)
- Jonas Bosse (1) +
- Jake Bowhay (25)
- Matthew Brett (1)
- Dietrich Brunn (7)
- Evgeni Burovski (65)
- Matthias Bussonnier (4)
- Tim Butters (1) +
- Cale (1) +
- CJ Carey (5)
- Thomas A Caswell (1)
- Sean Cheah (44) +
- Lucas Colley (97)
- com3dian (1)
- Gianluca Detommaso (1) +
- Thomas Duvernay (1)
- DWesl (2)
- f380cedric (1) +
- fancidev (13) +
- Daniel Garcia (1) +
- Lukas Geiger (3)
- Ralf Gommers (147)
- Matt Haberland (81)
- Tessa van der Heiden (2) +
- Shawn Hsu (1) +
- inky (3) +
- Jannes Münchmeyer (2) +
- Aditya Vidyadhar Kamath (2) +
- Agriya Khetarpal (1) +
- Andrew Landau (1) +
- Eric Larson (7)
- Zhen-Qi Liu (1) +
- Christian Lorentzen (2)
- Adam Lugowski (4)
- m-maggi (6) +
- Chethin Manage (1) +
- Ben Mares (1)
- Chris Markiewicz (1) +
- Mateusz Sokół (3)
- Daniel McCloy (1) +
- Melissa Weber Mendonça (6)
- Josue Melka (1)
- Michał Górny (4)
- Juan Montesinos (1) +
- Juan F. Montesinos (1) +
- Takumasa Nakamura (1)
- Andrew Nelson (27)
- Praveer Nidamaluri (1)
- Yagiz Olmez (5) +
- Dimitri Papadopoulos Orfanos (1)
- Drew Parsons (1) +
- Tirth Patel (7)
- Pearu Peterson (1)
- Matti Picus (3)
- Rambaud Pierrick (1) +
- Ilhan Polat (30)
- Quentin Barthélemy (1)
- Tyler Reddy (117)
- Pamphile Roy (10)
- Atsushi Sakai (8)
- Daniel Schmitz (10)
- Dan Schult (17)
- Eli Schwartz (4)
- Stefanie Senger (1) +
- Scott Shambaugh (2)
- Kevin Sheppard (2)
- sidsrinivasan (4) +
- Samuel St-Jean (1)
- Albert Steppi (31)
- Adam J. Stewart (4)
- Kai Striega (3)
- Ruikang Sun (1) +
- Mike Taves (1)
- Nicolas Tessore (3)
- Benedict T Thekkel (1) +
- Will Tirone (4)
- Jacob Vanderplas (2)
- Christian Veenhuis (1)
- Isaac Virshup (2)
- Ben Wallace (1) +
- Xuefeng Xu (3)
- Xiao Yuan (5)
- Irwin Zaid (8)
- Elmar Zander (1) +
- Mathias Zechmeister (1) +
A total of 96 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.
- Python
Published by tylerjereddy about 2 years ago
scipy - SciPy 1.13.0rc1
SciPy 1.13.0 Release Notes
Note: SciPy 1.13.0 is not released yet!
SciPy 1.13.0 is the culmination of 3 months of hard work. This
out-of-band release aims to support NumPy 2.0.0, and is backwards
compatible to NumPy 1.22.4. The version of OpenBLAS used to build
the PyPI wheels has been increased to 0.3.26.
This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Support for NumPy
2.0.0. - Interactive examples have been added to the documentation, allowing users to run the examples locally on embedded Jupyterlite notebooks in their browser.
- Preliminary 1D array support for the COO and DOK sparse formats.
- Several
scipy.statsfunctions have gained support for additionalaxis,nan_policy, andkeepdimsarguments.scipy.statsalso has several performance and accuracy improvements.
New features
scipy.integrate improvements
- The
terminalattribute ofscipy.integrate.solve_ivpeventscallables now additionally accepts integer values to specify a number of occurrences required for termination, rather than the previous restriction of only accepting aboolvalue to terminate on the first registered event.
scipy.io improvements
scipy.io.wavfile.writehas improveddtypeinput validation.
scipy.interpolate improvements
- The Modified Akima Interpolation has been added to
interpolate.Akima1DInterpolator, available via the newmethodargument. RegularGridInterpolatorgained the functionality to compute derivatives in place. For instance,RegularGridInterolator((x, y), values, method="cubic")(xi, nu=(1, 1))evaluates the mixed second derivative, :math:\partial^2 / \partial x \partial yatxi.- Performance characteristics of tensor-product spline methods of
RegularGridInterpolatorhave been changed: evaluations should be significantly faster, while construction might be slower. If you experience issues with construction times, you may need to experiment with optional keyword argumentssolverandsolver_args. Previous behavior (fast construction, slow evaluations) can be obtained via"*_legacy"methods:method="cubic_legacy"is exactly equivalent tomethod="cubic"in previous releases. Seegh-19633for details.
scipy.signal improvements
- Many filter design functions now have improved input validation for the
sampling frequency (
fs).
scipy.sparse improvements
coo_arraynow supports 1D shapes, and has additional 1D support formin,max,argmin, andargmax. The DOK format now has preliminary 1D support as well, though only supports simple integer indices at the time of writing.- Experimental support has been added for
pydata/sparsearray inputs toscipy.sparse.csgraph. dok_arrayanddok_matrixnow have proper implementations offromkeys.csrandcscformats now have improvedsetdiagperformance.
scipy.spatial improvements
voronoi_plot_2dnow draws Voronoi edges to infinity more clearly when the aspect ratio is skewed.
scipy.special improvements
- All Fortran code, namely,
AMOS,specfun, andcdfliblibraries that the majority of special functions depend on, is ported to Cython/C. - The function
factorialknow also supports faster, approximate calculation usingexact=False.
scipy.stats improvements
scipy.stats.rankdataandscipy.stats.wilcoxonhave been vectorized, improving their performance and the performance of hypothesis tests that depend on them.stats.mannwhitneyushould now be faster due to a vectorized statistic calculation, improved caching, improved exploitation of symmetry, and a memory reduction.PermutationMethodsupport was also added.scipy.stats.moodnow hasnan_policyandkeepdimssupport.scipy.stats.brunnermunzelnow hasaxisandkeepdimssupport.scipy.stats.friedmanchisquare,scipy.stats.shapiro,scipy.stats.normaltest,scipy.stats.skewtest,scipy.stats.kurtosistest,scipy.stats.f_oneway,scipy.stats.alexandergovern,scipy.stats.combine_pvalues, andscipy.stats.kstesthave gainedaxis,nan_policyandkeepdimssupport.scipy.stats.boxcox_normmaxhas gained aymaxparameter to allow user specification of the maximum value of the transformed data.scipy.stats.vonmisespdfmethod has been extended to supportkappa=0. Thefitmethod is also more performant due to the use of non-trivial bounds to solve forkappa.- High order
momentcalculations forscipy.stats.powerlaware now more accurate. - The
fitmethods ofscipy.stats.gamma(withmethod='mm') andscipy.stats.loglaplaceare faster and more reliable. scipy.stats.goodness_of_fitnow supports the use of a customstatisticprovided by the user.scipy.stats.wilcoxonnow supportsPermutationMethod, enabling calculation of accurate p-values in the presence of ties and zeros.scipy.stats.monte_carlo_testnow has improved robustness in the face of numerical noise.scipy.stats.wasserstein_distance_ndwas introduced to compute the Wasserstein-1 distance between two N-D discrete distributions.
Deprecated features
- Complex dtypes in
PchipInterpolatorandAkima1DInterpolatorhave been deprecated and will raise an error in SciPy 1.15.0. If you are trying to use the real components of the passed array, usenp.realony.
Backwards incompatible changes
Other changes
- The second argument of
scipy.stats.momenthas been renamed toorderwhile maintaining backward compatibility.
Authors
- Name (commits)
- h-vetinari (50)
- acceptacross (1) +
- Petteri Aimonen (1) +
- Francis Allanah (2) +
- Jonas Kock am Brink (1) +
- anupriyakkumari (12) +
- Aman Atman (2) +
- Aaditya Bansal (1) +
- Christoph Baumgarten (2)
- Sebastian Berg (4)
- Nicolas Bloyet (2) +
- Matt Borland (1)
- Jonas Bosse (1) +
- Jake Bowhay (25)
- Matthew Brett (1)
- Dietrich Brunn (7)
- Evgeni Burovski (48)
- Matthias Bussonnier (4)
- Cale (1) +
- CJ Carey (4)
- Thomas A Caswell (1)
- Sean Cheah (44) +
- Lucas Colley (97)
- com3dian (1)
- Gianluca Detommaso (1) +
- Thomas Duvernay (1)
- DWesl (2)
- f380cedric (1) +
- fancidev (13) +
- Daniel Garcia (1) +
- Lukas Geiger (3)
- Ralf Gommers (139)
- Matt Haberland (79)
- Tessa van der Heiden (2) +
- inky (3) +
- Jannes Münchmeyer (2) +
- Aditya Vidyadhar Kamath (2) +
- Agriya Khetarpal (1) +
- Andrew Landau (1) +
- Eric Larson (7)
- Zhen-Qi Liu (1) +
- Adam Lugowski (4)
- m-maggi (6) +
- Chethin Manage (1) +
- Ben Mares (1)
- Chris Markiewicz (1) +
- Mateusz Sokół (3)
- Daniel McCloy (1) +
- Melissa Weber Mendonça (6)
- Josue Melka (1)
- Michał Górny (4)
- Juan Montesinos (1) +
- Juan F. Montesinos (1) +
- Takumasa Nakamura (1)
- Andrew Nelson (26)
- Praveer Nidamaluri (1)
- Yagiz Olmez (5) +
- Dimitri Papadopoulos Orfanos (1)
- Drew Parsons (1) +
- Tirth Patel (7)
- Matti Picus (3)
- Rambaud Pierrick (1) +
- Ilhan Polat (30)
- Quentin Barthélemy (1)
- Tyler Reddy (81)
- Pamphile Roy (10)
- Atsushi Sakai (4)
- Daniel Schmitz (10)
- Dan Schult (16)
- Eli Schwartz (4)
- Stefanie Senger (1) +
- Scott Shambaugh (2)
- Kevin Sheppard (2)
- sidsrinivasan (4) +
- Samuel St-Jean (1)
- Albert Steppi (30)
- Adam J. Stewart (4)
- Kai Striega (3)
- Ruikang Sun (1) +
- Mike Taves (1)
- Nicolas Tessore (3)
- Benedict T Thekkel (1) +
- Will Tirone (4)
- Jacob Vanderplas (2)
- Christian Veenhuis (1)
- Isaac Virshup (2)
- Ben Wallace (1) +
- Xuefeng Xu (3)
- Xiao Yuan (5)
- Irwin Zaid (6)
- Mathias Zechmeister (1) +
A total of 91 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.
- Python
Published by tylerjereddy about 2 years ago
scipy - SciPy 1.12.0
SciPy 1.12.0 Release Notes
SciPy 1.12.0 is the culmination of 6 months of hard work. It contains
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.12.x branch, and on adding new features on the main branch.
This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Experimental support for the array API standard has been added to part of
scipy.special, and to all ofscipy.fftandscipy.cluster. There are likely to be bugs and early feedback for usage with CuPy arrays, PyTorch tensors, and other array API compatible libraries is appreciated. Use theSCIPY_ARRAY_APIenvironment variable for testing. - A new class,
ShortTimeFFT, provides a more versatile implementation of the short-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-) spectrogram. It utilizes an improved algorithm for calculating the ISTFT. - Several new constructors have been added for sparse arrays, and many operations now additionally support sparse arrays, further facilitating the migration from sparse matrices.
- A large portion of the
scipy.statsAPI now has improved support for handlingNaNvalues, masked arrays, and more fine-grained shape-handling. The accuracy and performance of a number ofstatsmethods have been improved, and a number of new statistical tests and distributions have been added.
New features
scipy.cluster improvements
- Experimental support added for the array API standard; PyTorch tensors,
CuPy arrays and array API compatible array libraries are now accepted
(GPU support is limited to functions with pure Python implementations).
CPU arrays which can be converted to and from NumPy are supported
module-wide and returned arrays will match the input type.
This behaviour is enabled by setting the
SCIPY_ARRAY_APIenvironment variable before importingscipy. This experimental support is still under development and likely to contain bugs - testing is very welcome.
scipy.fft improvements
- Experimental support added for the array API standard; functions which are
part of the
fftarray API standard extension module, as well as the Fast Hankel Transforms and the basic FFTs which are not in the extension module, now accept PyTorch tensors, CuPy arrays and array API compatible array libraries. CPU arrays which can be converted to and from NumPy arrays are supported module-wide and returned arrays will match the input type. This behaviour is enabled by setting theSCIPY_ARRAY_APIenvironment variable before importingscipy. This experimental support is still under development and likely to contain bugs - testing is very welcome.
scipy.integrate improvements
- Added
scipy.integrate.cumulative_simpsonfor cumulative quadrature from sampled data using Simpson's 1/3 rule.
scipy.interpolate improvements
- New class
NdBSplinerepresents tensor-product splines in N dimensions. This class only knows how to evaluate a tensor product given coefficients and knot vectors. This way it generalizesBSplinefor 1D data to N-D, and parallelsNdPPoly(which represents N-D tensor product polynomials). Evaluations exploit the localized nature of b-splines. NearestNDInterpolator.__call__accepts**query_options, which are passed through to theKDTree.querycall to find nearest neighbors. This allows, for instance, to limit the neighbor search distance and parallelize the query using theworkerskeyword.BarycentricInterpolatornow allows computing the derivatives.- It is now possible to change interpolation values in an existing
CloughTocher2DInterpolatorinstance, while also saving the barycentric coordinates of interpolation points.
scipy.linalg improvements
- Access to new low-level LAPACK functions is provided via
dtgsylandstgsyl.
scipy.optimize improvements
scipy.optimize.isotonic_regressionhas been added to allow nonparametric isotonic regression.scipy.optimize.nnlsis rewritten in Python and now implements the so-called fnnls or fast nnls, making it more efficient for high-dimensional problems.- The result object of
scipy.optimize.rootandscipy.optimize.root_scalarnow reports the method used. - The
callbackmethod ofscipy.optimize.differential_evolutioncan now be passed more detailed information via theintermediate_resultskeyword parameter. Also, the evolutionstrategynow accepts a callable for additional customization. The performance ofdifferential_evolutionhas also been improved. scipy.optimize.minimizemethodNewton-CGnow supports functions that return sparse Hessian matrices/arrays for thehessparameter and is slightly more efficient.scipy.optimize.minimizemethodBFGSnow accepts an initial estimate for the inverse of the Hessian, which allows for more efficient workflows in some circumstances. The new parameter ishess_inv0.scipy.optimize.minimizemethodsCG,Newton-CG, andBFGSnow accept parametersc1andc2, allowing specification of the Armijo and curvature rule parameters, respectively.scipy.optimize.curve_fitperformance has improved due to more efficient memoization of the callable function.
scipy.signal improvements
freqz,freqz_zpk, andgroup_delayare now more accurate whenfshas a default value.- The new class
ShortTimeFFTprovides a more versatile implementation of the short-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-) spectrogram. It utilizes an improved algorithm for calculating the ISTFT based on dual windows and provides more fine-grained control of the parametrization especially in regard to scaling and phase-shift. Functionality was implemented to ease working with signal and STFT chunks. A section has been added to the "SciPy User Guide" providing algorithmic details. The functionsstft,istftandspectrogramhave been marked as legacy.
scipy.sparse improvements
sparse.linalgiterative solverssparse.linalg.cg,sparse.linalg.cgs,sparse.linalg.bicg,sparse.linalg.bicgstab,sparse.linalg.gmres, andsparse.linalg.qmrare rewritten in Python.- Updated vendored SuperLU version to
6.0.1, along with a few additional fixes. - Sparse arrays have gained additional constructors:
eye_array,random_array,block_array, andidentity.kronandkronsumhave been adjusted to additionally support operation on sparse arrays. - Sparse matrices now support a transpose with
axes=(1, 0), to mirror the.Tmethod. LaplacianNdnow allows selection of the largest subset of eigenvalues, and additionally now supports retrieval of the corresponding eigenvectors. The performance ofLaplacianNdhas also been improved.- The performance of
dok_matrixanddok_arrayhas been improved, and their inheritance behavior should be more robust. hstack,vstack, andblock_diagnow work with sparse arrays, and preserve the input sparse type.- A new function,
scipy.sparse.linalg.matrix_power, has been added, allowing for exponentiation of sparse arrays.
scipy.spatial improvements
- Two new methods were implemented for
spatial.transform.Rotation:__pow__to raise a rotation to integer or fractional power andapprox_equalto check if two rotations are approximately equal. - The method
Rotation.align_vectorswas extended to solve a constrained alignment problem where two vectors are required to be aligned precisely. Also when given a single pair of vectors, the algorithm now returns the rotation with minimal magnitude, which can be considered as a minor backward incompatible change. - A new representation for
spatial.transform.Rotationcalled Davenport angles is available throughfrom_davenportandas_davenportmethods. - Performance improvements have been added to
distance.hamminganddistance.correlation. - Improved performance of
SphericalVoronoisort_vertices_of_regionsand two dimensional area calculations.
scipy.special improvements
- Added
scipy.special.stirling2for computation of Stirling numbers of the second kind. Both exact calculation and an asymptotic approximation (the default) are supported viaexact=Trueandexact=False(the default) respectively. - Added
scipy.special.betainccfor computation of the complementary incomplete Beta function andscipy.special.betainccinvfor computation of its inverse. - Improved precision of
scipy.special.betaincandscipy.special.betaincinv. - Experimental support added for alternative backends: functions
scipy.special.log_ndtr,scipy.special.ndtr,scipy.special.ndtri,scipy.special.erf,scipy.special.erfc,scipy.special.i0,scipy.special.i0e,scipy.special.i1,scipy.special.i1e,scipy.special.gammaln,scipy.special.gammainc,scipy.special.gammaincc,scipy.special.logit, andscipy.special.expitnow accept PyTorch tensors and CuPy arrays. These features are still under development and likely to contain bugs, so they are disabled by default; enable them by setting aSCIPY_ARRAY_APIenvironment variable to1before importingscipy. Testing is appreciated!
scipy.stats improvements
- Added
scipy.stats.quantile_test, a nonparametric test of whether a hypothesized value is the quantile associated with a specified probability. Theconfidence_intervalmethod of the result object gives a confidence interval of the quantile. scipy.stats.sampling.FastGeneratorInversionprovides a convenient interface to fast random sampling via numerical inversion of distribution CDFs.scipy.stats.geometric_discrepancyadds geometric/topological discrepancy metrics for random samples.scipy.stats.multivariate_normalnow has afitmethod for fitting distribution parameters to data via maximum likelihood estimation.scipy.stats.bws_testperforms the Baumgartner-Weiss-Schindler test of whether two-samples were drawn from the same distribution.scipy.stats.jf_skew_timplements the Jones and Faddy skew-t distribution.scipy.stats.anderson_ksampnow supports a permutation version of the test using themethodparameter.- The
fitmethods ofscipy.stats.halfcauchy,scipy.stats.halflogistic, andscipy.stats.halfnormare faster and more accurate. scipy.stats.betaentropyaccuracy has been improved for extreme values of distribution parameters.- The accuracy of
sfand/orisfmethods have been improved for several distributions:scipy.stats.burr,scipy.stats.hypsecant,scipy.stats.kappa3,scipy.stats.loglaplace,scipy.stats.lognorm,scipy.stats.lomax,scipy.stats.pearson3,scipy.stats.rdist, andscipy.stats.pareto. - The following functions now support parameters
axis,nan_policy, andkeep_dims:scipy.stats.entropy,scipy.stats.differential_entropy,scipy.stats.variation,scipy.stats.ansari,scipy.stats.bartlett,scipy.stats.levene,scipy.stats.fligner,scipy.stats.circmean,scipy.stats.circvar,scipy.stats.circstd,scipy.stats.tmean,scipy.stats.tvar,scipy.stats.tstd,scipy.stats.tmin,scipy.stats.tmax, andscipy.stats.tsem. - The
logpdfandfitmethods ofscipy.stats.skewnormhave been improved. - The beta negative binomial distribution is implemented as
scipy.stats.betanbinom. - Improved performance of
scipy.stats.invwishartrvsandlogpdf. - A source of intermediate overflow in
scipy.stats.boxcox_normmaxwithmethod='mle'has been eliminated, and the returned value oflmbdais constrained such that the transformed data will not overflow. scipy.stats.nakagamistatsis more accurate and reliable.- A source of intermediate overflow in
scipy.norminvgauss.pdfhas been eliminated. - Added support for masked arrays to
scipy.stats.circmean,scipy.stats.circvar,scipy.stats.circstd, andscipy.stats.entropy. scipy.stats.dirichlethas gained a new covariance (cov) method.- Improved accuracy of
entropymethod ofscipy.stats.multivariate_tfor large degrees of freedom. scipy.stats.loggammahas an improvedentropymethod.
Deprecated features
- Error messages have been made clearer for objects that don't exist in the public namespace and warnings sharpened for private attributes that are not supposed to be imported at all.
scipy.signal.cmplx_sorthas been deprecated and will be removed in SciPy 1.15. A replacement you can use is provided in the deprecation message.- Values the the argument
initialofscipy.integrate.cumulative_trapezoidother than0andNoneare now deprecated. scipy.stats.rvs_ratio_uniformsis deprecated in favour ofscipy.stats.sampling.RatioUniformsscipy.integrate.quadratureandscipy.integrate.romberghave been deprecated due to accuracy issues and interface shortcomings. They will be removed in SciPy 1.15. Please usescipy.integrate.quadinstead.Coinciding with upcoming changes to function signatures (e.g. removal of a deprecated keyword), we are deprecating positional use of keyword arguments for the affected functions, which will raise an error starting with SciPy 1.14. In some cases, this has delayed the originally announced removal date, to give time to respond to the second part of the deprecation. Affected functions are:
linalg.{eigh, eigvalsh, pinv}integrate.simpsonsignal.{firls, firwin, firwin2, remez}sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}special.combstats.kendalltau
All wavelet functions have been deprecated, as PyWavelets provides suitable implementations; affected functions are:
signal.{daub, qmf, cascade, morlet, morlet2, ricker, cwt}scipy.integrate.trapz,scipy.integrate.cumtrapz, andscipy.integrate.simpshave been deprecated in favour ofscipy.integrate.trapezoid,scipy.integrate.cumulative_trapezoid, andscipy.integrate.simpsonrespectively and will be removed in SciPy 1.14.The
tolargument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk,gmres,lgmres,minres,qmr,tfqmr}is now deprecated in favour ofrtoland will be removed in SciPy 1.14. Furthermore, the default value ofatolfor these functions is due to change to0.0in SciPy 1.14.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- The
centeredkeyword ofscipy.stats.qmc.LatinHypercubehas been removed. Usescrambled=Falseinstead ofcentered=True. scipy.stats.binom_testhas been removed in favour ofscipy.stats.binomtest.- In
scipy.stats.iqr, the use ofscale='raw'has been removed in favour ofscale=1.
Backwards incompatible changes
Other changes
- The arguments used to compile and link SciPy are now available via
show_config.
Authors
- Name (commits)
- endolith (1)
- h-vetinari (34)
- Tom Adamczewski (3) +
- Anudeep Adiraju (1) +
- akeemlh (1)
- Alex Amadori (2) +
- Raja Yashwanth Avantsa (2) +
- Seth Axen (1) +
- Ross Barnowski (1)
- Dan Barzilay (1) +
- Ashish Bastola (1) +
- Christoph Baumgarten (2)
- Ben Beasley (3) +
- Doron Behar (1)
- Peter Bell (1)
- Sebastian Berg (1)
- Ben Boeckel (1) +
- David Boetius (1) +
- Matt Borland (1)
- Jake Bowhay (103)
- Larry Bradley (1) +
- Dietrich Brunn (5)
- Evgeni Burovski (102)
- Matthias Bussonnier (18)
- CJ Carey (6)
- Colin Carroll (1) +
- Aadya Chinubhai (1) +
- Luca Citi (1)
- Lucas Colley (141) +
- com3dian (1) +
- Anirudh Dagar (4)
- Danni (1) +
- Dieter Werthmüller (1)
- John Doe (2) +
- Philippe DONNAT (2) +
- drestebon (1) +
- Thomas Duvernay (1)
- elbarso (1) +
- emilfrost (2) +
- Paul Estano (8) +
- Evandro (2)
- Franz Király (1) +
- Nikita Furin (1) +
- gabrielthomsen (1) +
- Lukas Geiger (9) +
- Artem Glebov (22) +
- Caden Gobat (1)
- Ralf Gommers (127)
- Alexander Goscinski (2) +
- Rohit Goswami (2) +
- Olivier Grisel (1)
- Matt Haberland (244)
- Charles Harris (1)
- harshilkamdar (1) +
- Alon Hovav (2) +
- Gert-Ludwig Ingold (1)
- Romain Jacob (1) +
- jcwhitehead (1) +
- Julien Jerphanion (13)
- He Jia (1)
- JohnWT (1) +
- jokasimr (1) +
- Evan W Jones (1)
- Karen Róbertsdóttir (1) +
- Ganesh Kathiresan (1)
- Robert Kern (11)
- Andrew Knyazev (4)
- Uwe L. Korn (1) +
- Rishi Kulkarni (1)
- Kale Kundert (3) +
- Jozsef Kutas (2)
- Kyle0 (2) +
- Robert Langefeld (1) +
- Jeffrey Larson (1) +
- Jessy Lauer (1) +
- lciti (1) +
- Hoang Le (1) +
- Antony Lee (5)
- Thilo Leitzbach (4) +
- LemonBoy (2) +
- Ellie Litwack (8) +
- Thomas Loke (4) +
- Malte Londschien (1) +
- Christian Lorentzen (6)
- Adam Lugowski (10) +
- lutefiskhotdish (1)
- mainak33 (1) +
- Ben Mares (11) +
- mart-mihkel (2) +
- Mateusz Sokół (24) +
- Nikolay Mayorov (4)
- Nicholas McKibben (1)
- Melissa Weber Mendonça (7)
- Michał Górny (1)
- Kat Mistberg (2) +
- mkiffer (1) +
- mocquin (1) +
- Nicolas Mokus (2) +
- Sturla Molden (1)
- Roberto Pastor Muela (3) +
- Bijay Nayak (1) +
- Andrew Nelson (105)
- Praveer Nidamaluri (3) +
- Lysandros Nikolaou (2)
- Dimitri Papadopoulos Orfanos (7)
- Pablo Rodríguez Pérez (1) +
- Dimitri Papadopoulos (2)
- Tirth Patel (14)
- Kyle Paterson (1) +
- Paul (4) +
- Yann Pellegrini (2) +
- Matti Picus (4)
- Ilhan Polat (36)
- Pranav (1) +
- Bharat Raghunathan (1)
- Chris Rapson (1) +
- Matteo Raso (4)
- Tyler Reddy (215)
- Martin Reinecke (1)
- Tilo Reneau-Cardoso (1) +
- resting-dove (2) +
- Simon Segerblom Rex (4)
- Lucas Roberts (2)
- Pamphile Roy (31)
- Feras Saad (3) +
- Atsushi Sakai (3)
- Masahiro Sakai (2) +
- Omar Salman (14)
- Andrej Savikin (1) +
- Daniel Schmitz (55)
- Dan Schult (19)
- Scott Shambaugh (9)
- Sheila-nk (2) +
- Mauro Silberberg (3) +
- Maciej Skorski (1) +
- Laurent Sorber (1) +
- Albert Steppi (28)
- Kai Striega (1)
- Saswat Susmoy (1) +
- Alex Szatmary (1) +
- Søren Fuglede Jørgensen (3)
- othmane tamri (3) +
- Ewout ter Hoeven (1)
- Will Tirone (1)
- TLeitzbach (1) +
- Kevin Topolski (1) +
- Edgar Andrés Margffoy Tuay (1)
- Dipansh Uikey (1) +
- Matus Valo (3)
- Christian Veenhuis (2)
- Nicolas Vetsch (1) +
- Isaac Virshup (7)
- Hielke Walinga (2) +
- Stefan van der Walt (2)
- Warren Weckesser (7)
- Bernhard M. Wiedemann (4)
- Levi John Wolf (1)
- Xuefeng Xu (4) +
- Rory Yorke (2)
- YoussefAli1 (1) +
- Irwin Zaid (4) +
- Jinzhe Zeng (1) +
- JIMMY ZHAO (1) +
A total of 163 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.
- Python
Published by tylerjereddy over 2 years ago
scipy - SciPy 1.12.0rc2
SciPy 1.12.0 Release Notes
Note: SciPy 1.12.0 is not released yet!
SciPy 1.12.0 is the culmination of 6 months of hard work. It contains
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.12.x branch, and on adding new features on the main branch.
This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Experimental support for the array API standard has been added to part of
scipy.special, and to all ofscipy.fftandscipy.cluster. There are likely to be bugs and early feedback for usage with CuPy arrays, PyTorch tensors, and other array API compatible libraries is appreciated. Use theSCIPY_ARRAY_APIenvironment variable for testing. - A new class,
ShortTimeFFT, provides a more versatile implementation of the short-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-) spectrogram. It utilizes an improved algorithm for calculating the ISTFT. - Several new constructors have been added for sparse arrays, and many operations now additionally support sparse arrays, further facilitating the migration from sparse matrices.
- A large portion of the
scipy.statsAPI now has improved support for handlingNaNvalues, masked arrays, and more fine-grained shape-handling. The accuracy and performance of a number ofstatsmethods have been improved, and a number of new statistical tests and distributions have been added.
New features
scipy.cluster improvements
- Experimental support added for the array API standard; PyTorch tensors,
CuPy arrays and array API compatible array libraries are now accepted
(GPU support is limited to functions with pure Python implementations).
CPU arrays which can be converted to and from NumPy are supported
module-wide and returned arrays will match the input type.
This behaviour is enabled by setting the
SCIPY_ARRAY_APIenvironment variable before importingscipy. This experimental support is still under development and likely to contain bugs - testing is very welcome.
scipy.fft improvements
- Experimental support added for the array API standard; functions which are
part of the
fftarray API standard extension module, as well as the Fast Hankel Transforms and the basic FFTs which are not in the extension module, now accept PyTorch tensors, CuPy arrays and array API compatible array libraries. CPU arrays which can be converted to and from NumPy arrays are supported module-wide and returned arrays will match the input type. This behaviour is enabled by setting theSCIPY_ARRAY_APIenvironment variable before importingscipy. This experimental support is still under development and likely to contain bugs - testing is very welcome.
scipy.integrate improvements
- Added
scipy.integrate.cumulative_simpsonfor cumulative quadrature from sampled data using Simpson's 1/3 rule.
scipy.interpolate improvements
- New class
NdBSplinerepresents tensor-product splines in N dimensions. This class only knows how to evaluate a tensor product given coefficients and knot vectors. This way it generalizesBSplinefor 1D data to N-D, and parallelsNdPPoly(which represents N-D tensor product polynomials). Evaluations exploit the localized nature of b-splines. NearestNDInterpolator.__call__accepts**query_options, which are passed through to theKDTree.querycall to find nearest neighbors. This allows, for instance, to limit the neighbor search distance and parallelize the query using theworkerskeyword.BarycentricInterpolatornow allows computing the derivatives.- It is now possible to change interpolation values in an existing
CloughTocher2DInterpolatorinstance, while also saving the barycentric coordinates of interpolation points.
scipy.linalg improvements
- Access to new low-level LAPACK functions is provided via
dtgsylandstgsyl.
scipy.ndimage improvements
scipy.optimize improvements
scipy.optimize.nnlsis rewritten in Python and now implements the so-called fnnls or fast nnls.- The result object of
scipy.optimize.rootandscipy.optimize.root_scalarnow reports the method used. - The
callbackmethod ofscipy.optimize.differential_evolutioncan now be passed more detailed information via theintermediate_resultskeyword parameter. Also, the evolutionstrategynow accepts a callable for additional customization. The performance ofdifferential_evolutionhas also been improved. minimizemethodNewton-CGhas been made slightly more efficient.minimizemethodBFGSnow accepts an initial estimate for the inverse of the Hessian, which allows for more efficient workflows in some circumstances. The new parameter ishess_inv0.minimizemethodsCG,Newton-CG, andBFGSnow accept parametersc1andc2, allowing specification of the Armijo and curvature rule parameters, respectively.curve_fitperformance has improved due to more efficient memoization of the callable function.isotonic_regressionhas been added to allow nonparametric isotonic regression.
scipy.signal improvements
freqz,freqz_zpk, andgroup_delayare now more accurate whenfshas a default value.- The new class
ShortTimeFFTprovides a more versatile implementation of the short-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-) spectrogram. It utilizes an improved algorithm for calculating the ISTFT based on dual windows and provides more fine-grained control of the parametrization especially in regard to scaling and phase-shift. Functionality was implemented to ease working with signal and STFT chunks. A section has been added to the "SciPy User Guide" providing algorithmic details. The functionsstft,istftandspectrogramhave been marked as legacy.
scipy.sparse improvements
sparse.linalgiterative solverssparse.linalg.cg,sparse.linalg.cgs,sparse.linalg.bicg,sparse.linalg.bicgstab,sparse.linalg.gmres, andsparse.linalg.qmrare rewritten in Python.- Updated vendored SuperLU version to
6.0.1, along with a few additional fixes. - Sparse arrays have gained additional constructors:
eye_array,random_array,block_array, andidentity.kronandkronsumhave been adjusted to additionally support operation on sparse arrays. - Sparse matrices now support a transpose with
axes=(1, 0), to mirror the.Tmethod. LaplacianNdnow allows selection of the largest subset of eigenvalues, and additionally now supports retrieval of the corresponding eigenvectors. The performance ofLaplacianNdhas also been improved.- The performance of
dok_matrixanddok_arrayhas been improved, and their inheritance behavior should be more robust. hstack,vstack, andblock_diagnow work with sparse arrays, and preserve the input sparse type.- A new function,
scipy.sparse.linalg.matrix_power, has been added, allowing for exponentiation of sparse arrays.
scipy.spatial improvements
- Two new methods were implemented for
spatial.transform.Rotation:__pow__to raise a rotation to integer or fractional power andapprox_equalto check if two rotations are approximately equal. - The method
Rotation.align_vectorswas extended to solve a constrained alignment problem where two vectors are required to be aligned precisely. Also when given a single pair of vectors, the algorithm now returns the rotation with minimal magnitude, which can be considered as a minor backward incompatible change. - A new representation for
spatial.transform.Rotationcalled Davenport angles is available throughfrom_davenportandas_davenportmethods. - Performance improvements have been added to
distance.hamminganddistance.correlation. - Improved performance of
SphericalVoronoisort_vertices_of_regionsand two dimensional area calculations.
scipy.special improvements
- Added
scipy.special.stirling2for computation of Stirling numbers of the second kind. Both exact calculation and an asymptotic approximation (the default) are supported viaexact=Trueandexact=False(the default) respectively. - Added
scipy.special.betainccfor computation of the complementary incomplete Beta function andscipy.special.betainccinvfor computation of its inverse. - Improved precision of
scipy.special.betaincandscipy.special.betaincinv - Experimental support added for alternative backends: functions
scipy.special.log_ndtr,scipy.special.ndtr,scipy.special.ndtri,scipy.special.erf,scipy.special.erfc,scipy.special.i0,scipy.special.i0e,scipy.special.i1,scipy.special.i1e,scipy.special.gammaln,scipy.special.gammainc,scipy.special.gammaincc,scipy.special.logit, andscipy.special.expitnow accept PyTorch tensors and CuPy arrays. These features are still under development and likely to contain bugs, so they are disabled by default; enable them by setting aSCIPY_ARRAY_APIenvironment variable to1before importingscipy. Testing is appreciated!
scipy.stats improvements
- Added
scipy.stats.quantile_test, a nonparametric test of whether a hypothesized value is the quantile associated with a specified probability. Theconfidence_intervalmethod of the result object gives a confidence interval of the quantile. scipy.stats.wasserstein_distancenow computes the Wasserstein distance in the multidimensional case.scipy.stats.sampling.FastGeneratorInversionprovides a convenient interface to fast random sampling via numerical inversion of distribution CDFs.scipy.stats.geometric_discrepancyadds geometric/topological discrepancy metrics for random samples.scipy.stats.multivariate_normalnow has afitmethod for fitting distribution parameters to data via maximum likelihood estimation.scipy.stats.bws_testperforms the Baumgartner-Weiss-Schindler test of whether two-samples were drawn from the same distribution.scipy.stats.jf_skew_timplements the Jones and Faddy skew-t distribution.scipy.stats.anderson_ksampnow supports a permutation version of the test using themethodparameter.- The
fitmethods ofscipy.stats.halfcauchy,scipy.stats.halflogistic, andscipy.stats.halfnormare faster and more accurate. scipy.stats.betaentropyaccuracy has been improved for extreme values of distribution parameters.- The accuracy of
sfand/orisfmethods have been improved for several distributions:scipy.stats.burr,scipy.stats.hypsecant,scipy.stats.kappa3,scipy.stats.loglaplace,scipy.stats.lognorm,scipy.stats.lomax,scipy.stats.pearson3,scipy.stats.rdist, andscipy.stats.pareto. - The following functions now support parameters
axis,nan_policy, andkeep_dims:scipy.stats.entropy,scipy.stats.differential_entropy,scipy.stats.variation,scipy.stats.ansari,scipy.stats.bartlett,scipy.stats.levene,scipy.stats.fligner,scipy.stats.cirmean,scipy.stats.circvar,scipy.stats.circstd,scipy.stats.tmean,scipy.stats.tvar,scipy.stats.tstd,scipy.stats.tmin,scipy.stats.tmax, andscipy.stats.tsem`. - The
logpdfandfitmethods ofscipy.stats.skewnormhave been improved. - The beta negative binomial distribution is implemented as
scipy.stats.betanbinom. - The speed of
scipy.stats.invwishartrvsandlogpdfhave been improved. - A source of intermediate overflow in
scipy.stats.boxcox_normmaxwithmethod='mle'has been eliminated, and the returned value oflmbdais constrained such that the transformed data will not overflow. scipy.stats.nakagamistatsis more accurate and reliable.- A source of intermediate overflow in
scipy.norminvgauss.pdfhas been eliminated. - Added support for masked arrays to
stats.circmean,stats.circvar,stats.circstd, andstats.entropy. dirichlethas gained a new covariance (cov) method.- Improved accuracy of
multivariate_tentropy with large degrees of freedom. loggammahas an improvedentropymethod.
Deprecated features
- Error messages have been made clearer for objects that don't exist in the public namespace and warnings sharpened for private attributes that are not supposed to be imported at all.
scipy.signal.cmplx_sorthas been deprecated and will be removed in SciPy 1.14. A replacement you can use is provided in the deprecation message.- Values the the argument
initialofscipy.integrate.cumulative_trapezoidother than0andNoneare now deprecated. scipy.stats.rvs_ratio_uniformsis deprecated in favour ofscipy.stats.sampling.RatioUniformsscipy.integrate.quadratureandscipy.integrate.romberghave been deprecated due to accuracy issues and interface shortcomings. They will be removed in SciPy 1.14. Please usescipy.integrate.quadinstead.Coinciding with upcoming changes to function signatures (e.g. removal of a deprecated keyword), we are deprecating positional use of keyword arguments for the affected functions, which will raise an error starting with SciPy 1.14. In some cases, this has delayed the originally announced removal date, to give time to respond to the second part of the deprecation. Affected functions are:
linalg.{eigh, eigvalsh, pinv}integrate.simpsonsignal.{firls, firwin, firwin2, remez}sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}special.combstats.kendalltau
All wavelet functions have been deprecated, as PyWavelets provides suitable implementations; affected functions are:
signal.{daub, qmf, cascade, morlet, morlet2, ricker, cwt}scipy.integrate.trapz,scipy.integrate.cumtrapz, andscipy.integrate.simpshave been deprecated in favour ofscipy.integrate.trapezoid,scipy.integrate.cumulative_trapezoid, andscipy.integrate.simpsonrespectively and will be removed in SciPy 1.14.The
tolargument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk,gmres,lgmres,minres,qmr,tfqmr}is now deprecated in favour ofrtoland will be removed in SciPy 1.14. Furthermore, the default value ofatolfor these functions is due to change to0.0in SciPy 1.14.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- The
centeredkeyword ofscipy.stats.qmc.LatinHypercubehas been removed. Usescrambled=Falseinstead ofcentered=True. scipy.stats.binom_testhas been removed in favour ofscipy.stats.binomtest.- In
scipy.stats.iqr, the use ofscale='raw'has been removed in favour ofscale=1.
Backwards incompatible changes
Other changes
- The arguments used to compile and link SciPy are now available via
show_config.
Authors
- Name (commits)
- endolith (1)
- h-vetinari (32)
- Tom Adamczewski (3) +
- Anudeep Adiraju (1) +
- akeemlh (1)
- Alex Amadori (2) +
- Raja Yashwanth Avantsa (2) +
- Seth Axen (1) +
- Ross Barnowski (1)
- Dan Barzilay (1) +
- Ashish Bastola (1) +
- Christoph Baumgarten (2)
- Ben Beasley (3) +
- Doron Behar (1)
- Peter Bell (1)
- Sebastian Berg (1)
- Ben Boeckel (1) +
- David Boetius (1) +
- Matt Borland (1)
- Jake Bowhay (103)
- Larry Bradley (1) +
- Dietrich Brunn (5)
- Evgeni Burovski (102)
- Matthias Bussonnier (18)
- CJ Carey (6)
- Colin Carroll (1) +
- Aadya Chinubhai (1) +
- Luca Citi (1)
- Lucas Colley (141) +
- com3dian (1) +
- Anirudh Dagar (4)
- Danni (1) +
- Dieter Werthmüller (1)
- John Doe (2) +
- Philippe DONNAT (2) +
- drestebon (1) +
- Thomas Duvernay (1)
- elbarso (1) +
- emilfrost (2) +
- Paul Estano (8) +
- Evandro (2)
- Franz Király (1) +
- Nikita Furin (1) +
- gabrielthomsen (1) +
- Lukas Geiger (9) +
- Artem Glebov (22) +
- Caden Gobat (1)
- Ralf Gommers (126)
- Alexander Goscinski (2) +
- Rohit Goswami (2) +
- Olivier Grisel (1)
- Matt Haberland (243)
- Charles Harris (1)
- harshilkamdar (1) +
- Alon Hovav (2) +
- Gert-Ludwig Ingold (1)
- Romain Jacob (1) +
- jcwhitehead (1) +
- Julien Jerphanion (13)
- He Jia (1)
- JohnWT (1) +
- jokasimr (1) +
- Evan W Jones (1)
- Karen Róbertsdóttir (1) +
- Ganesh Kathiresan (1)
- Robert Kern (11)
- Andrew Knyazev (4)
- Uwe L. Korn (1) +
- Rishi Kulkarni (1)
- Kale Kundert (3) +
- Jozsef Kutas (2)
- Kyle0 (2) +
- Robert Langefeld (1) +
- Jeffrey Larson (1) +
- Jessy Lauer (1) +
- lciti (1) +
- Hoang Le (1) +
- Antony Lee (5)
- Thilo Leitzbach (4) +
- LemonBoy (2) +
- Ellie Litwack (8) +
- Thomas Loke (4) +
- Malte Londschien (1) +
- Christian Lorentzen (6)
- Adam Lugowski (10) +
- lutefiskhotdish (1)
- mainak33 (1) +
- Ben Mares (11) +
- mart-mihkel (2) +
- Mateusz Sokół (24) +
- Nikolay Mayorov (4)
- Nicholas McKibben (1)
- Melissa Weber Mendonça (7)
- Michał Górny (1)
- Kat Mistberg (2) +
- mkiffer (1) +
- mocquin (1) +
- Nicolas Mokus (2) +
- Sturla Molden (1)
- Roberto Pastor Muela (3) +
- Bijay Nayak (1) +
- Andrew Nelson (105)
- Praveer Nidamaluri (3) +
- Lysandros Nikolaou (2)
- Dimitri Papadopoulos Orfanos (7)
- Pablo Rodríguez Pérez (1) +
- Dimitri Papadopoulos (2)
- Tirth Patel (14)
- Kyle Paterson (1) +
- Paul (4) +
- Yann Pellegrini (2) +
- Matti Picus (4)
- Ilhan Polat (36)
- Pranav (1) +
- Bharat Raghunathan (1)
- Chris Rapson (1) +
- Matteo Raso (4)
- Tyler Reddy (201)
- Martin Reinecke (1)
- Tilo Reneau-Cardoso (1) +
- resting-dove (2) +
- Simon Segerblom Rex (4)
- Lucas Roberts (2)
- Pamphile Roy (31)
- Feras Saad (3) +
- Atsushi Sakai (3)
- Masahiro Sakai (2) +
- Omar Salman (14)
- Andrej Savikin (1) +
- Daniel Schmitz (54)
- Dan Schult (19)
- Scott Shambaugh (9)
- Sheila-nk (2) +
- Mauro Silberberg (3) +
- Maciej Skorski (1) +
- Laurent Sorber (1) +
- Albert Steppi (28)
- Kai Striega (1)
- Saswat Susmoy (1) +
- Alex Szatmary (1) +
- Søren Fuglede Jørgensen (3)
- othmane tamri (3) +
- Ewout ter Hoeven (1)
- Will Tirone (1)
- TLeitzbach (1) +
- Kevin Topolski (1) +
- Edgar Andrés Margffoy Tuay (1)
- Dipansh Uikey (1) +
- Matus Valo (3)
- Christian Veenhuis (2)
- Nicolas Vetsch (1) +
- Isaac Virshup (7)
- Hielke Walinga (2) +
- Stefan van der Walt (2)
- Warren Weckesser (7)
- Bernhard M. Wiedemann (4)
- Levi John Wolf (1)
- Xuefeng Xu (4) +
- Rory Yorke (2)
- YoussefAli1 (1) +
- Irwin Zaid (4) +
- Jinzhe Zeng (1) +
- JIMMY ZHAO (1) +
A total of 163 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.
- Python
Published by tylerjereddy over 2 years ago
scipy - SciPy 1.12.0rc1
SciPy 1.12.0 Release Notes
Note: SciPy 1.12.0 is not released yet!
SciPy 1.12.0 is the culmination of 6 months of hard work. It contains
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.12.x branch, and on adding new features on the main branch.
This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Experimental support for the array API standard has been added to part of
scipy.special, and to all ofscipy.fftandscipy.cluster. There are likely to be bugs and early feedback for usage with CuPy arrays, PyTorch tensors, and other array API compatible libraries is appreciated. Use theSCIPY_ARRAY_APIenvironment variable for testing. - A new class,
ShortTimeFFT, provides a more versatile implementation of the short-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-) spectrogram. It utilizes an improved algorithm for calculating the ISTFT. - Several new constructors have been added for sparse arrays, and many operations now additionally support sparse arrays, further facilitating the migration from sparse matrices.
- A large portion of the
scipy.statsAPI now has improved support for handlingNaNvalues, masked arrays, and more fine-grained shape-handling. The accuracy and performance of a number ofstatsmethods have been improved, and a number of new statistical tests and distributions have been added.
New features
scipy.cluster improvements
- Experimental support added for the array API standard; PyTorch tensors,
CuPy arrays and array API compatible array libraries are now accepted
(GPU support is limited to functions with pure Python implementations).
CPU arrays which can be converted to and from NumPy are supported
module-wide and returned arrays will match the input type.
This behaviour is enabled by setting the
SCIPY_ARRAY_APIenvironment variable before importingscipy. This experimental support is still under development and likely to contain bugs - testing is very welcome.
scipy.fft improvements
- Experimental support added for the array API standard; functions which are
part of the
fftarray API standard extension module, as well as the Fast Hankel Transforms and the basic FFTs which are not in the extension module, now accept PyTorch tensors, CuPy arrays and array API compatible array libraries. CPU arrays which can be converted to and from NumPy arrays are supported module-wide and returned arrays will match the input type. This behaviour is enabled by setting theSCIPY_ARRAY_APIenvironment variable before importingscipy. This experimental support is still under development and likely to contain bugs - testing is very welcome.
scipy.integrate improvements
- Added
scipy.integrate.cumulative_simpsonfor cumulative quadrature from sampled data using Simpson's 1/3 rule.
scipy.interpolate improvements
- New class
NdBSplinerepresents tensor-product splines in N dimensions. This class only knows how to evaluate a tensor product given coefficients and knot vectors. This way it generalizesBSplinefor 1D data to N-D, and parallelsNdPPoly(which represents N-D tensor product polynomials). Evaluations exploit the localized nature of b-splines. NearestNDInterpolator.__call__accepts**query_options, which are passed through to theKDTree.querycall to find nearest neighbors. This allows, for instance, to limit the neighbor search distance and parallelize the query using theworkerskeyword.BarycentricInterpolatornow allows computing the derivatives.- It is now possible to change interpolation values in an existing
CloughTocher2DInterpolatorinstance, while also saving the barycentric coordinates of interpolation points.
scipy.linalg improvements
- Access to new low-level LAPACK functions is provided via
dtgsylandstgsyl.
scipy.ndimage improvements
scipy.optimize improvements
scipy.optimize.nnlsis rewritten in Python and now implements the so-called fnnls or fast nnls.- The result object of
scipy.optimize.rootandscipy.optimize.root_scalarnow reports the method used. - The
callbackmethod ofscipy.optimize.differential_evolutioncan now be passed more detailed information via theintermediate_resultskeyword parameter. Also, the evolutionstrategynow accepts a callable for additional customization. The performance ofdifferential_evolutionhas also been improved. minimizemethodNewton-CGhas been made slightly more efficient.minimizemethodBFGSnow accepts an initial estimate for the inverse of the Hessian, which allows for more efficient workflows in some circumstances. The new parameter ishess_inv0.minimizemethodsCG,Newton-CG, andBFGSnow accept parametersc1andc2, allowing specification of the Armijo and curvature rule parameters, respectively.curve_fitperformance has improved due to more efficient memoization of the callable function.isotonic_regressionhas been added to allow nonparametric isotonic regression.
scipy.signal improvements
freqz,freqz_zpk, andgroup_delayare now more accurate whenfshas a default value.- The new class
ShortTimeFFTprovides a more versatile implementation of the short-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-) spectrogram. It utilizes an improved algorithm for calculating the ISTFT based on dual windows and provides more fine-grained control of the parametrization especially in regard to scaling and phase-shift. Functionality was implemented to ease working with signal and STFT chunks. A section has been added to the "SciPy User Guide" providing algorithmic details. The functionsstft,istftandspectrogramhave been marked as legacy.
scipy.sparse improvements
sparse.linalgiterative solverssparse.linalg.cg,sparse.linalg.cgs,sparse.linalg.bicg,sparse.linalg.bicgstab,sparse.linalg.gmres, andsparse.linalg.qmrare rewritten in Python.- Updated vendored SuperLU version to
6.0.1, along with a few additional fixes. - Sparse arrays have gained additional constructors:
eye_array,random_array,block_array, andidentity.kronandkronsumhave been adjusted to additionally support operation on sparse arrays. - Sparse matrices now support a transpose with
axes=(1, 0), to mirror the.Tmethod. LaplacianNdnow allows selection of the largest subset of eigenvalues, and additionally now supports retrieval of the corresponding eigenvectors. The performance ofLaplacianNdhas also been improved.- The performance of
dok_matrixanddok_arrayhas been improved, and their inheritance behavior should be more robust. hstack,vstack, andblock_diagnow work with sparse arrays, and preserve the input sparse type.- A new function,
scipy.sparse.linalg.matrix_power, has been added, allowing for exponentiation of sparse arrays.
scipy.spatial improvements
- Two new methods were implemented for
spatial.transform.Rotation:__pow__to raise a rotation to integer or fractional power andapprox_equalto check if two rotations are approximately equal. - The method
Rotation.align_vectorswas extended to solve a constrained alignment problem where two vectors are required to be aligned precisely. Also when given a single pair of vectors, the algorithm now returns the rotation with minimal magnitude, which can be considered as a minor backward incompatible change. - A new representation for
spatial.transform.Rotationcalled Davenport angles is available throughfrom_davenportandas_davenportmethods. - Performance improvements have been added to
distance.hamminganddistance.correlation. - Improved performance of
SphericalVoronoisort_vertices_of_regionsand two dimensional area calculations.
scipy.special improvements
- Added
scipy.special.stirling2for computation of Stirling numbers of the second kind. Both exact calculation and an asymptotic approximation (the default) are supported viaexact=Trueandexact=False(the default) respectively. - Added
scipy.special.betainccfor computation of the complementary incomplete Beta function andscipy.special.betainccinvfor computation of its inverse. - Improved precision of
scipy.special.betaincandscipy.special.betaincinv - Experimental support added for alternative backends: functions
scipy.special.log_ndtr,scipy.special.ndtr,scipy.special.ndtri,scipy.special.erf,scipy.special.erfc,scipy.special.i0,scipy.special.i0e,scipy.special.i1,scipy.special.i1e,scipy.special.gammaln,scipy.special.gammainc,scipy.special.gammaincc,scipy.special.logit, andscipy.special.expitnow accept PyTorch tensors and CuPy arrays. These features are still under development and likely to contain bugs, so they are disabled by default; enable them by setting aSCIPY_ARRAY_APIenvironment variable to1before importingscipy. Testing is appreciated!
scipy.stats improvements
- Added
scipy.stats.quantile_test, a nonparametric test of whether a hypothesized value is the quantile associated with a specified probability. Theconfidence_intervalmethod of the result object gives a confidence interval of the quantile. scipy.stats.wasserstein_distancenow computes the Wasserstein distance in the multidimensional case.scipy.stats.sampling.FastGeneratorInversionprovides a convenient interface to fast random sampling via numerical inversion of distribution CDFs.scipy.stats.geometric_discrepancyadds geometric/topological discrepancy metrics for random samples.scipy.stats.multivariate_normalnow has afitmethod for fitting distribution parameters to data via maximum likelihood estimation.scipy.stats.bws_testperforms the Baumgartner-Weiss-Schindler test of whether two-samples were drawn from the same distribution.scipy.stats.jf_skew_timplements the Jones and Faddy skew-t distribution.scipy.stats.anderson_ksampnow supports a permutation version of the test using themethodparameter.- The
fitmethods ofscipy.stats.halfcauchy,scipy.stats.halflogistic, andscipy.stats.halfnormare faster and more accurate. scipy.stats.betaentropyaccuracy has been improved for extreme values of distribution parameters.- The accuracy of
sfand/orisfmethods have been improved for several distributions:scipy.stats.burr,scipy.stats.hypsecant,scipy.stats.kappa3,scipy.stats.loglaplace,scipy.stats.lognorm,scipy.stats.lomax,scipy.stats.pearson3,scipy.stats.rdist, andscipy.stats.pareto. - The following functions now support parameters
axis,nan_policy, andkeep_dims:scipy.stats.entropy,scipy.stats.differential_entropy,scipy.stats.variation,scipy.stats.ansari,scipy.stats.bartlett,scipy.stats.levene,scipy.stats.fligner,scipy.stats.cirmean,scipy.stats.circvar,scipy.stats.circstd,scipy.stats.tmean,scipy.stats.tvar,scipy.stats.tstd,scipy.stats.tmin,scipy.stats.tmax, andscipy.stats.tsem`. - The
logpdfandfitmethods ofscipy.stats.skewnormhave been improved. - The beta negative binomial distribution is implemented as
scipy.stats.betanbinom. - The speed of
scipy.stats.invwishartrvsandlogpdfhave been improved. - A source of intermediate overflow in
scipy.stats.boxcox_normmaxwithmethod='mle'has been eliminated, and the returned value oflmbdais constrained such that the transformed data will not overflow. scipy.stats.nakagamistatsis more accurate and reliable.- A source of intermediate overflow in
scipy.norminvgauss.pdfhas been eliminated. - Added support for masked arrays to
stats.circmean,stats.circvar,stats.circstd, andstats.entropy. dirichlethas gained a new covariance (cov) method.- Improved accuracy of
multivariate_tentropy with large degrees of freedom. loggammahas an improvedentropymethod.
Deprecated features
- Error messages have been made clearer for objects that don't exist in the public namespace and warnings sharpened for private attributes that are not supposed to be imported at all.
scipy.signal.cmplx_sorthas been deprecated and will be removed in SciPy 1.14. A replacement you can use is provided in the deprecation message.- Values the the argument
initialofscipy.integrate.cumulative_trapezoidother than0andNoneare now deprecated. scipy.stats.rvs_ratio_uniformsis deprecated in favour ofscipy.stats.sampling.RatioUniformsscipy.integrate.quadratureandscipy.integrate.romberghave been deprecated due to accuracy issues and interface shortcomings. They will be removed in SciPy 1.14. Please usescipy.integrate.quadinstead.Coinciding with upcoming changes to function signatures (e.g. removal of a deprecated keyword), we are deprecating positional use of keyword arguments for the affected functions, which will raise an error starting with SciPy 1.14. In some cases, this has delayed the originally announced removal date, to give time to respond to the second part of the deprecation. Affected functions are:
linalg.{eigh, eigvalsh, pinv}integrate.simpsonsignal.{firls, firwin, firwin2, remez}sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}special.combstats.kendalltau
All wavelet functions have been deprecated, as PyWavelets provides suitable implementations; affected functions are:
signal.{daub, qmf, cascade, morlet, morlet2, ricker, cwt}
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- The
centeredkeyword ofstats.qmc.LatinHypercubehas been removed. Usescrambled=Falseinstead ofcentered=True.
Backwards incompatible changes
Other changes
- The arguments used to compile and link SciPy are now available via
show_config.
Authors
- Name (commits)
- endolith (1)
- h-vetinari (29)
- Tom Adamczewski (3) +
- Anudeep Adiraju (1) +
- akeemlh (1)
- Alex Amadori (2) +
- Raja Yashwanth Avantsa (2) +
- Seth Axen (1) +
- Ross Barnowski (1)
- Dan Barzilay (1) +
- Ashish Bastola (1) +
- Christoph Baumgarten (2)
- Ben Beasley (3) +
- Doron Behar (1)
- Peter Bell (1)
- Sebastian Berg (1)
- Ben Boeckel (1) +
- David Boetius (1) +
- Jake Bowhay (102)
- Larry Bradley (1) +
- Dietrich Brunn (5)
- Evgeni Burovski (101)
- Matthias Bussonnier (18)
- CJ Carey (6)
- Colin Carroll (1) +
- Aadya Chinubhai (1) +
- Luca Citi (1)
- Lucas Colley (140) +
- com3dian (1) +
- Anirudh Dagar (4)
- Danni (1) +
- Dieter Werthmüller (1)
- John Doe (2) +
- Philippe DONNAT (2) +
- drestebon (1) +
- Thomas Duvernay (1)
- elbarso (1) +
- emilfrost (2) +
- Paul Estano (8) +
- Evandro (2)
- Franz Király (1) +
- Nikita Furin (1) +
- gabrielthomsen (1) +
- Lukas Geiger (9) +
- Artem Glebov (22) +
- Caden Gobat (1)
- Ralf Gommers (125)
- Alexander Goscinski (2) +
- Rohit Goswami (2) +
- Olivier Grisel (1)
- Matt Haberland (243)
- Charles Harris (1)
- harshilkamdar (1) +
- Alon Hovav (2) +
- Gert-Ludwig Ingold (1)
- Romain Jacob (1) +
- jcwhitehead (1) +
- Julien Jerphanion (13)
- He Jia (1)
- JohnWT (1) +
- jokasimr (1) +
- Evan W Jones (1)
- Karen Róbertsdóttir (1) +
- Ganesh Kathiresan (1)
- Robert Kern (11)
- Andrew Knyazev (4)
- Uwe L. Korn (1) +
- Rishi Kulkarni (1)
- Kale Kundert (3) +
- Jozsef Kutas (2)
- Kyle0 (2) +
- Robert Langefeld (1) +
- Jeffrey Larson (1) +
- Jessy Lauer (1) +
- lciti (1) +
- Hoang Le (1) +
- Antony Lee (5)
- Thilo Leitzbach (4) +
- LemonBoy (2) +
- Ellie Litwack (8) +
- Thomas Loke (4) +
- Malte Londschien (1) +
- Christian Lorentzen (6)
- Adam Lugowski (9) +
- lutefiskhotdish (1)
- mainak33 (1) +
- Ben Mares (11) +
- mart-mihkel (2) +
- Mateusz Sokół (24) +
- Nikolay Mayorov (4)
- Nicholas McKibben (1)
- Melissa Weber Mendonça (7)
- Kat Mistberg (2) +
- mkiffer (1) +
- mocquin (1) +
- Nicolas Mokus (2) +
- Sturla Molden (1)
- Roberto Pastor Muela (3) +
- Bijay Nayak (1) +
- Andrew Nelson (105)
- Praveer Nidamaluri (2) +
- Lysandros Nikolaou (2)
- Dimitri Papadopoulos Orfanos (7)
- Pablo Rodríguez Pérez (1) +
- Dimitri Papadopoulos (2)
- Tirth Patel (14)
- Kyle Paterson (1) +
- Paul (4) +
- Yann Pellegrini (2) +
- Matti Picus (4)
- Ilhan Polat (36)
- Pranav (1) +
- Bharat Raghunathan (1)
- Chris Rapson (1) +
- Matteo Raso (4)
- Tyler Reddy (165)
- Martin Reinecke (1)
- Tilo Reneau-Cardoso (1) +
- resting-dove (2) +
- Simon Segerblom Rex (4)
- Lucas Roberts (2)
- Pamphile Roy (31)
- Feras Saad (3) +
- Atsushi Sakai (3)
- Masahiro Sakai (2) +
- Omar Salman (14)
- Andrej Savikin (1) +
- Daniel Schmitz (52)
- Dan Schult (19)
- Scott Shambaugh (9)
- Sheila-nk (2) +
- Mauro Silberberg (3) +
- Maciej Skorski (1) +
- Laurent Sorber (1) +
- Albert Steppi (28)
- Kai Striega (1)
- Saswat Susmoy (1) +
- Alex Szatmary (1) +
- Søren Fuglede Jørgensen (3)
- othmane tamri (3) +
- Ewout ter Hoeven (1)
- Will Tirone (1)
- TLeitzbach (1) +
- Kevin Topolski (1) +
- Edgar Andrés Margffoy Tuay (1)
- Dipansh Uikey (1) +
- Matus Valo (3)
- Christian Veenhuis (2)
- Nicolas Vetsch (1) +
- Isaac Virshup (7)
- Hielke Walinga (2) +
- Stefan van der Walt (2)
- Warren Weckesser (7)
- Bernhard M. Wiedemann (4)
- Levi John Wolf (1)
- Xuefeng Xu (4) +
- Rory Yorke (2)
- YoussefAli1 (1) +
- Irwin Zaid (4) +
- Jinzhe Zeng (1) +
- JIMMY ZHAO (1) +
A total of 161 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.
- Python
Published by tylerjereddy over 2 years ago
scipy - SciPy 1.11.4
SciPy 1.11.4 Release Notes
SciPy 1.11.4 is a bug-fix release with no new features
compared to 1.11.3.
Authors
- Name (commits)
- Jake Bowhay (2)
- Ralf Gommers (4)
- Julien Jerphanion (2)
- Nikolay Mayorov (2)
- Melissa Weber Mendonça (1)
- Tirth Patel (1)
- Tyler Reddy (22)
- Dan Schult (3)
- Nicolas Vetsch (1) +
A total of 9 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.
- Python
Published by tylerjereddy over 2 years ago
scipy - SciPy 1.11.3
SciPy 1.11.3 Release Notes
SciPy 1.11.3 is a bug-fix release with no new features
compared to 1.11.2.
Authors
- Name (commits)
- Jake Bowhay (2)
- CJ Carey (1)
- Colin Carroll (1) +
- Anirudh Dagar (2)
- drestebon (1) +
- Ralf Gommers (5)
- Matt Haberland (2)
- Julien Jerphanion (1)
- Uwe L. Korn (1) +
- Ellie Litwack (2)
- Andrew Nelson (5)
- Bharat Raghunathan (1)
- Tyler Reddy (37)
- Søren Fuglede Jørgensen (2)
- Hielke Walinga (1) +
- Warren Weckesser (1)
- Bernhard M. Wiedemann (1)
A total of 17 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.
- Python
Published by tylerjereddy over 2 years ago
scipy - SciPy 1.11.2
SciPy 1.11.2 Release Notes
SciPy 1.11.2 is a bug-fix release with no new features
compared to 1.11.1. Python 3.12 and musllinux wheels
are provided with this release.
Authors
- Name (commits)
- Evgeni Burovski (2)
- CJ Carey (3)
- Dieter Werthmüller (1)
- elbarso (1) +
- Ralf Gommers (2)
- Matt Haberland (1)
- jokasimr (1) +
- Thilo Leitzbach (1) +
- LemonBoy (1) +
- Ellie Litwack (2) +
- Sturla Molden (1)
- Andrew Nelson (5)
- Tyler Reddy (39)
- Daniel Schmitz (6)
- Dan Schult (2)
- Albert Steppi (1)
- Matus Valo (1)
- Stefan van der Walt (1)
A total of 18 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.
- Python
Published by tylerjereddy almost 3 years ago
scipy - SciPy 1.11.1
SciPy 1.11.1 Release Notes
SciPy 1.11.1 is a bug-fix release with no new features
compared to 1.11.0. In particular, a licensing issue
discovered after the release of 1.11.0 has been addressed.
Authors
- Name (commits)
- h-vetinari (1)
- Robert Kern (1)
- Ilhan Polat (4)
- Tyler Reddy (8)
A total of 4 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.
- Python
Published by tylerjereddy almost 3 years ago
scipy - SciPy 1.11.0
SciPy 1.11.0 Release Notes
SciPy 1.11.0 is the culmination of 6 months of hard work. It contains
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.11.x branch, and on adding new features on the main branch.
This release requires Python 3.9+ and NumPy 1.21.6 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Several
scipy.sparsearray API improvements, includingsparse.sparray, a new public base class distinct from the oldersparse.spmatrixclass, proper 64-bit index support, and numerous deprecations paving the way to a modern sparse array experience. scipy.statsadded tools for survival analysis, multiple hypothesis testing, sensitivity analysis, and working with censored data.- A new function was added for quasi-Monte Carlo integration, and linear
algebra functions
detandlunow accept nD-arrays. - An
axesargument was added broadly tondimagefunctions, facilitating analysis of stacked image data.
New features
scipy.integrate improvements
- Added
scipy.integrate.qmc_quadfor quasi-Monte Carlo integration. - For an even number of points,
scipy.integrate.simpsonnow calculates a parabolic segment over the last three points which gives improved accuracy over the previous implementation.
scipy.cluster improvements
disjoint_sethas a new methodsubset_sizefor providing the size of a particular subset.
scipy.constants improvements
- The
quetta,ronna,ronto, andquectoSI prefixes were added.
scipy.linalg improvements
scipy.linalg.detis improved and now accepts nD-arrays.scipy.linalg.luis improved and now accepts nD-arrays. With the newp_indicesswitch the output permutation argument can be 1D(n,)permutation index instead of the full(n, n)array.
scipy.ndimage improvements
axesargument was added torank_filter,percentile_filter,median_filter,uniform_filter,minimum_filter,maximum_filter, andgaussian_filter, which can be useful for processing stacks of image data.
scipy.optimize improvements
scipy.optimize.linprognow passes unrecognized options directly to HiGHS.scipy.optimize.root_scalarnow uses Newton's method to be used without providingfprimeand thesecantmethod to be used without a second guess.scipy.optimize.lsq_linearnow acceptsboundsarguments of typescipy.optimize.Bounds.scipy.optimize.minimizemethod='cobyla'now supports simple bound constraints.- Users can opt into a new callback interface for most methods of
scipy.optimize.minimize: If the provided callback callable accepts a single keyword argument,intermediate_result,scipy.optimize.minimizenow passes both the current solution and the optimal value of the objective function to the callback as an instance ofscipy.optimize.OptimizeResult. It also allows the user to terminate optimization by raising aStopIterationexception from the callback function.scipy.optimize.minimizewill return normally, and the latest solution information is provided in the result object. scipy.optimize.curve_fitnow supports an optionalnan_policyargument.scipy.optimize.shgonow has parallelization with theworkersargument, symmetry arguments that can improve performance, class-based design to improve usability, and generally improved performance.
scipy.signal improvements
istfthas an improved warning message when the NOLA condition fails.
scipy.sparse improvements
- A new public base class
scipy.sparse.sparraywas introduced, allowing further extension of the sparse array API (such as the support for 1-dimensional sparse arrays) without breaking backwards compatibility.isinstance(x, scipy.sparse.sparray)to select the new sparse array classes, whileisinstance(x, scipy.sparse.spmatrix)selects only the old sparse matrix classes. - Division of sparse arrays by a dense array now returns sparse arrays.
scipy.sparse.isspmatrixnow only returnsTruefor the sparse matrices instances.scipy.sparse.issparsenow has to be used instead to check for instances of sparse arrays or instances of sparse matrices.- Sparse arrays constructed with int64 indices will no longer automatically downcast to int32.
- The
argminandargmaxmethods now return the correct result when explicit zeros are present.
scipy.sparse.linalg improvements
- dividing
LinearOperatorby a number now returns a_ScaledLinearOperator LinearOperatornow supports right multiplication by arrayslobpcgshould be more efficient following removal of an extraneous QR decomposition.
scipy.spatial improvements
- Usage of new C++ backend for additional distance metrics, the majority of which will see substantial performance improvements, though a few minor regressions are known. These are focused on distances between boolean arrays.
scipy.special improvements
- The factorial functions
factorial,factorial2andfactorialkwere made consistent in their behavior (in terms of dimensionality, errors etc.). Additionally,factorial2can now handle arrays withexact=True, andfactorialkcan handle arrays.
scipy.stats improvements
New Features
scipy.stats.sobol_indices, a method to compute Sobol' sensitivity indices.scipy.stats.dunnett, which performs Dunnett's test of the means of multiple experimental groups against the mean of a control group.scipy.stats.ecdffor computing the empirical CDF and complementary CDF (survival function / SF) from uncensored or right-censored data. This function is also useful for survival analysis / Kaplan-Meier estimation.scipy.stats.logrankto compare survival functions underlying samples.scipy.stats.false_discovery_controlfor adjusting p-values to control the false discovery rate of multiple hypothesis tests using the Benjamini-Hochberg or Benjamini-Yekutieli procedures.scipy.stats.CensoredDatato represent censored data. It can be used as input to thefitmethod of univariate distributions and to the newecdffunction.- Filliben's goodness of fit test as
method='Filliben'ofscipy.stats.goodness_of_fit. scipy.stats.ttest_indhas a new method,confidence_intervalfor computing a confidence interval of the difference between means.scipy.stats.MonteCarloMethod,scipy.stats.PermutationMethod, andscipy.stats.BootstrapMethodare new classes to configure resampling and/or Monte Carlo versions of hypothesis tests. They can currently be used withscipy.stats.pearsonr.
Statistical Distributions
- Added the von-Mises Fisher distribution as
scipy.stats.vonmises_fisher. This distribution is the most common analogue of the normal distribution on the unit sphere. - Added the relativistic Breit-Wigner distribution as
scipy.stats.rel_breitwigner. It is used in high energy physics to model resonances. - Added the Dirichlet multinomial distribution as
scipy.stats.dirichlet_multinomial. Improved the speed and precision of several univariate statistical distributions.
scipy.stats.anglitsfscipy.stats.betaentropyscipy.stats.betaprimecdf,sf,ppfscipy.stats.chientropyscipy.stats.chi2entropyscipy.stats.dgammaentropy,cdf,sf,ppf, andisfscipy.stats.dweibullentropy,sf, andisfscipy.stats.exponweibsfandisfscipy.stats.fentropyscipy.stats.foldcauchysfscipy.stats.foldnormcdfandsfscipy.stats.gammaentropyscipy.stats.genexponppf,isf,rvsscipy.stats.gengammaentropyscipy.stats.geomentropyscipy.stats.genlogisticentropy,logcdf,sf,ppf, andisfscipy.stats.genhyperboliccdfandsfscipy.stats.gibratsfandisfscipy.stats.gompertzentropy,sf. andisfscipy.stats.halflogisticsf, andisfscipy.stats.halfcauchysfandisfscipy.stats.halfnormcdf,sf, andisfscipy.stats.invgammaentropyscipy.stats.invgaussentropyscipy.stats.johnsonsbpdf,cdf,sf,ppf, andisfscipy.stats.johnsonsupdf,sf,isf, andstatsscipy.stats.lognormfitscipy.stats.loguniformentropy,logpdf,pdf,cdf,ppf, andstatsscipy.stats.maxwellsfandisfscipy.stats.nakagamientropyscipy.stats.powerlawsfscipy.stats.powerlognormlogpdf,logsf,sf, andisfscipy.stats.powernormsfandisfscipy.stats.tentropy,logpdf, andpdfscipy.stats.truncexponsf, andisfscipy.stats.truncnormentropyscipy.stats.truncparetofitscipy.stats.vonmisesfit
scipy.stats.multivariate_tnow hascdfandentropymethods.scipy.stats.multivariate_normal,scipy.stats.matrix_normal, andscipy.stats.invwishartnow have anentropymethod.
Other Improvements
scipy.stats.monte_carlo_testnow supports multi-sample statistics.scipy.stats.bootstrapcan now produce one-sided confidence intervals.scipy.stats.rankdataperformance was improved formethod=ordinalandmethod=dense.scipy.stats.momentnow supports non-central moment calculation.scipy.stats.andersonnow supports theweibull_mindistribution.scipy.stats.semandscipy.stats.iqrnow supportaxis,nan_policy, and masked array input.
Deprecated features
- Multi-Ellipsis sparse matrix indexing has been deprecated and will be removed in SciPy 1.13.
- Several methods were deprecated for sparse arrays:
asfptype,getrow,getcol,get_shape,getmaxprint,set_shape,getnnz, andgetformat. Additionally, the.Aand.Hattributes were deprecated. Sparse matrix types are not affected. - The
scipy.linalgfunctionstri,triu&trilare deprecated and will be removed in SciPy 1.13. Users are recommended to use the NumPy versions of these functions with identical names. - The
scipy.signalfunctionsbspline,quadratic&cubicare deprecated and will be removed in SciPy 1.13. Users are recommended to usescipy.interpolate.BSplineinstead. - The
evenkeyword ofscipy.integrate.simpsonis deprecated and will be removed in SciPy 1.13.0. Users should leave this as the default as this gives improved accuracy compared to the other methods. - Using
exact=Truewhen passing integers in a float array tofactorialis deprecated and will be removed in SciPy 1.13.0. - float128 and object dtypes are deprecated for
scipy.signal.medfiltandscipy.signal.order_filter - The functions
scipy.signal.{lsim2, impulse2, step2}had long been deprecated in documentation only. They now raise a DeprecationWarning and will be removed in SciPy 1.13.0. - Importing window functions directly from
scipy.windowhas been soft deprecated since SciPy 1.1.0. They now raise aDeprecationWarningand will be removed in SciPy 1.13.0. Users should instead import them fromscipy.signal.windowor use the convenience functionscipy.signal.get_window.
Backwards incompatible changes
- The default for the
legacykeyword ofscipy.special.combhas changed fromTruetoFalse, as announced since its introduction.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- The
nkeyword has been removed fromscipy.stats.moment. - The
alphakeyword has been removed fromscipy.stats.interval. - The misspelt
gilbratdistribution has been removed (usescipy.stats.gibrat). - The deprecated spelling of the
kulsinskidistance metric has been removed (usescipy.spatial.distance.kulczynski1). - The
verticeskeyword ofscipy.spatial.Delauney.qhullhas been removed (use simplices). - The
residualproperty ofscipy.sparse.csgraph.maximum_flowhas been removed (useflow). - The
extradockeyword ofscipy.stats.rv_continuous,scipy.stats.rv_discreteandscipy.stats.rv_samplehas been removed. - The
sym_poskeyword ofscipy.linalg.solvehas been removed. - The
scipy.optimize.minimizefunction now raises an error forx0withx0.ndim > 1. - In
scipy.stats.mode, the default value ofkeepdimsis nowFalse, and support for non-numeric input has been removed. - The function
scipy.signal.lsimdoes not support non-uniform time steps anymore.
Other changes
- Rewrote the source build docs and restructured the contributor guide.
- Improved support for cross-compiling with meson build system.
- MyST-NB notebook infrastructure has been added to our documentation.
Authors
- h-vetinari (69)
- Oriol Abril-Pla (1) +
- Tom Adamczewski (1) +
- Anton Akhmerov (13)
- Andrey Akinshin (1) +
- alice (1) +
- Oren Amsalem (1)
- Ross Barnowski (13)
- Christoph Baumgarten (2)
- Dawson Beatty (1) +
- Doron Behar (1) +
- Peter Bell (1)
- John Belmonte (1) +
- boeleman (1) +
- Jack Borchanian (1) +
- Matt Borland (3) +
- Jake Bowhay (41)
- Larry Bradley (1) +
- Sienna Brent (1) +
- Matthew Brett (1)
- Evgeni Burovski (39)
- Matthias Bussonnier (2)
- Maria Cann (1) +
- Alfredo Carella (1) +
- CJ Carey (34)
- Hood Chatham (2)
- Anirudh Dagar (3)
- Alberto Defendi (1) +
- Pol del Aguila (1) +
- Hans Dembinski (1)
- Dennis (1) +
- Vinayak Dev (1) +
- Thomas Duvernay (1)
- DWesl (4)
- Stefan Endres (66)
- Evandro (1) +
- Tom Eversdijk (2) +
- Isuru Fernando (1)
- Franz Forstmayr (4)
- Joseph Fox-Rabinovitz (1)
- Stefano Frazzetto (1) +
- Neil Girdhar (1)
- Caden Gobat (1) +
- Ralf Gommers (153)
- GonVas (1) +
- Marco Gorelli (1)
- Brett Graham (2) +
- Matt Haberland (388)
- harshvardhan2707 (1) +
- Alex Herbert (1) +
- Guillaume Horel (1)
- Geert-Jan Huizing (1) +
- Jakob Jakobson (2)
- Julien Jerphanion (10)
- jyuv (2)
- Rajarshi Karmakar (1) +
- Ganesh Kathiresan (3) +
- Robert Kern (4)
- Andrew Knyazev (4)
- Sergey Koposov (1)
- Rishi Kulkarni (2) +
- Eric Larson (1)
- Zoufiné Lauer-Bare (2) +
- Antony Lee (3)
- Gregory R. Lee (8)
- Guillaume Lemaitre (2) +
- lilinjie (2) +
- Yannis Linardos (1) +
- Christian Lorentzen (5)
- Loïc Estève (1)
- Adam Lugowski (1) +
- Charlie Marsh (2) +
- Boris Martin (1) +
- Nicholas McKibben (11)
- Melissa Weber Mendonça (58)
- Michał Górny (1) +
- Jarrod Millman (5)
- Stefanie Molin (2) +
- Mark W. Mueller (1) +
- mustafacevik (1) +
- Takumasa N (1) +
- nboudrie (1)
- Andrew Nelson (112)
- Nico Schlömer (4)
- Lysandros Nikolaou (2) +
- Kyle Oman (1)
- OmarManzoor (2) +
- Simon Ott (1) +
- Geoffrey Oxberry (1) +
- Geoffrey M. Oxberry (2) +
- Sravya papaganti (1) +
- Tirth Patel (2)
- Ilhan Polat (32)
- Quentin Barthélemy (1)
- Matteo Raso (12) +
- Tyler Reddy (143)
- Lucas Roberts (1)
- Pamphile Roy (225)
- Jordan Rupprecht (1) +
- Atsushi Sakai (11)
- Omar Salman (7) +
- Leo Sandler (1) +
- Ujjwal Sarswat (3) +
- Saumya (1) +
- Daniel Schmitz (79)
- Henry Schreiner (2) +
- Dan Schult (8) +
- Eli Schwartz (6)
- Tomer Sery (2) +
- Scott Shambaugh (10) +
- Gagandeep Singh (1)
- Ethan Steinberg (6) +
- stepeos (2) +
- Albert Steppi (3)
- Strahinja Lukić (1)
- Kai Striega (4)
- suen-bit (1) +
- Tartopohm (2)
- Logan Thomas (2) +
- Jacopo Tissino (1) +
- Matus Valo (12) +
- Jacob Vanderplas (2)
- Christian Veenhuis (1) +
- Isaac Virshup (3)
- Stefan van der Walt (14)
- Warren Weckesser (63)
- windows-server-2003 (1)
- Levi John Wolf (3)
- Nobel Wong (1) +
- Benjamin Yeh (1) +
- Rory Yorke (1)
- Younes (2) +
- Zaikun ZHANG (1) +
- Alex Zverianskii (1) +
A total of 134 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.
- Python
Published by tylerjereddy almost 3 years ago
scipy - SciPy 1.11.0rc2
SciPy 1.11.0 Release Notes
Note: SciPy 1.11.0 is not released yet!
SciPy 1.11.0 is the culmination of 6 months of hard work. It contains
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.11.x branch, and on adding new features on the main branch.
This release requires Python 3.9+ and NumPy 1.21.6 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Several
scipy.sparsearray API improvements, includingsparse.sparray, a new public base class distinct from the oldersparse.spmatrixclass, proper 64-bit index support, and numerous deprecations paving the way to a modern sparse array experience. scipy.statsadded tools for survival analysis, multiple hypothesis testing, sensitivity analysis, and working with censored data.- A new function was added for quasi-Monte Carlo integration, and linear
algebra functions
detandlunow accept nD-arrays. - An
axesargument was added broadly tondimagefunctions, facilitating analysis of stacked image data.
New features
scipy.integrate improvements
- Added
scipy.integrate.qmc_quadfor quasi-Monte Carlo integration. - For an even number of points,
scipy.integrate.simpsonnow calculates a parabolic segment over the last three points which gives improved accuracy over the previous implementation.
scipy.cluster improvements
disjoint_sethas a new methodsubset_sizefor providing the size of a particular subset.
scipy.constants improvements
- The
quetta,ronna,ronto, andquectoSI prefixes were added.
scipy.linalg improvements
scipy.linalg.detis improved and now accepts nD-arrays.scipy.linalg.luis improved and now accepts nD-arrays. With the newp_indicesswitch the output permutation argument can be 1D(n,)permutation index instead of the full(n, n)array.
scipy.ndimage improvements
axesargument was added torank_filter,percentile_filter,median_filter,uniform_filter,minimum_filter,maximum_filter, andgaussian_filter, which can be useful for processing stacks of image data.
scipy.optimize improvements
scipy.optimize.linprognow passes unrecognized options directly to HiGHS.scipy.optimize.root_scalarnow uses Newton's method to be used without providingfprimeand thesecantmethod to be used without a second guess.scipy.optimize.lsq_linearnow acceptsboundsarguments of typescipy.optimize.Bounds.scipy.optimize.minimizemethod='cobyla'now supports simple bound constraints.- Users can opt into a new callback interface for most methods of
scipy.optimize.minimize: If the provided callback callable accepts a single keyword argument,intermediate_result,scipy.optimize.minimizenow passes both the current solution and the optimal value of the objective function to the callback as an instance ofscipy.optimize.OptimizeResult. It also allows the user to terminate optimization by raising aStopIterationexception from the callback function.scipy.optimize.minimizewill return normally, and the latest solution information is provided in the result object. scipy.optimize.curve_fitnow supports an optionalnan_policyargument.scipy.optimize.shgonow has parallelization with theworkersargument, symmetry arguments that can improve performance, class-based design to improve usability, and generally improved performance.
scipy.signal improvements
istfthas an improved warning message when the NOLA condition fails.
scipy.sparse improvements
- A new public base class
scipy.sparse.sparraywas introduced, allowing further extension of the sparse array API (such as the support for 1-dimensional sparse arrays) without breaking backwards compatibility.isinstance(x, scipy.sparse.sparray)to select the new sparse array classes, whileisinstance(x, scipy.sparse.spmatrix)selects only the old sparse matrix classes. - Division of sparse arrays by a dense array now returns sparse arrays.
scipy.sparse.isspmatrixnow only returnsTruefor the sparse matrices instances.scipy.sparse.issparsenow has to be used instead to check for instances of sparse arrays or instances of sparse matrices.- Sparse arrays constructed with int64 indices will no longer automatically downcast to int32.
- The
argminandargmaxmethods now return the correct result when explicit zeros are present.
scipy.sparse.linalg improvements
- dividing
LinearOperatorby a number now returns a_ScaledLinearOperator LinearOperatornow supports right multiplication by arrayslobpcgshould be more efficient following removal of an extraneous QR decomposition.
scipy.spatial improvements
- Usage of new C++ backend for additional distance metrics, the majority of which will see substantial performance improvements, though a few minor regressions are known. These are focused on distances between boolean arrays.
scipy.special improvements
- The factorial functions
factorial,factorial2andfactorialkwere made consistent in their behavior (in terms of dimensionality, errors etc.). Additionally,factorial2can now handle arrays withexact=True, andfactorialkcan handle arrays.
scipy.stats improvements
New Features
scipy.stats.sobol_indices, a method to compute Sobol' sensitivity indices.scipy.stats.dunnett, which performs Dunnett's test of the means of multiple experimental groups against the mean of a control group.scipy.stats.ecdffor computing the empirical CDF and complementary CDF (survival function / SF) from uncensored or right-censored data. This function is also useful for survival analysis / Kaplan-Meier estimation.scipy.stats.logrankto compare survival functions underlying samples.scipy.stats.false_discovery_controlfor adjusting p-values to control the false discovery rate of multiple hypothesis tests using the Benjamini-Hochberg or Benjamini-Yekutieli procedures.scipy.stats.CensoredDatato represent censored data. It can be used as input to thefitmethod of univariate distributions and to the newecdffunction.- Filliben's goodness of fit test as
method='Filliben'ofscipy.stats.goodness_of_fit. scipy.stats.ttest_indhas a new method,confidence_intervalfor computing a confidence interval of the difference between means.scipy.stats.MonteCarloMethod,scipy.stats.PermutationMethod, andscipy.stats.BootstrapMethodare new classes to configure resampling and/or Monte Carlo versions of hypothesis tests. They can currently be used withscipy.stats.pearsonr.
Statistical Distributions
- Added the von-Mises Fisher distribution as
scipy.stats.vonmises_fisher. This distribution is the most common analogue of the normal distribution on the unit sphere. - Added the relativistic Breit-Wigner distribution as
scipy.stats.rel_breitwigner. It is used in high energy physics to model resonances. - Added the Dirichlet multinomial distribution as
scipy.stats.dirichlet_multinomial. Improved the speed and precision of several univariate statistical distributions.
scipy.stats.anglitsfscipy.stats.betaentropyscipy.stats.betaprimecdf,sf,ppfscipy.stats.chientropyscipy.stats.chi2entropyscipy.stats.dgammaentropy,cdf,sf,ppf, andisfscipy.stats.dweibullentropy,sf, andisfscipy.stats.exponweibsfandisfscipy.stats.fentropyscipy.stats.foldcauchysfscipy.stats.foldnormcdfandsfscipy.stats.gammaentropyscipy.stats.genexponppf,isf,rvsscipy.stats.gengammaentropyscipy.stats.geomentropyscipy.stats.genlogisticentropy,logcdf,sf,ppf, andisfscipy.stats.genhyperboliccdfandsfscipy.stats.gibratsfandisfscipy.stats.gompertzentropy,sf. andisfscipy.stats.halflogisticsf, andisfscipy.stats.halfcauchysfandisfscipy.stats.halfnormcdf,sf, andisfscipy.stats.invgammaentropyscipy.stats.invgaussentropyscipy.stats.johnsonsbpdf,cdf,sf,ppf, andisfscipy.stats.johnsonsupdf,sf,isf, andstatsscipy.stats.lognormfitscipy.stats.loguniformentropy,logpdf,pdf,cdf,ppf, andstatsscipy.stats.maxwellsfandisfscipy.stats.nakagamientropyscipy.stats.powerlawsfscipy.stats.powerlognormlogpdf,logsf,sf, andisfscipy.stats.powernormsfandisfscipy.stats.tentropy,logpdf, andpdfscipy.stats.truncexponsf, andisfscipy.stats.truncnormentropyscipy.stats.truncparetofitscipy.stats.vonmisesfit
scipy.stats.multivariate_tnow hascdfandentropymethods.scipy.stats.multivariate_normal,scipy.stats.matrix_normal, andscipy.stats.invwishartnow have anentropymethod.
Other Improvements
scipy.stats.monte_carlo_testnow supports multi-sample statistics.scipy.stats.bootstrapcan now produce one-sided confidence intervals.scipy.stats.rankdataperformance was improved formethod=ordinalandmethod=dense.scipy.stats.momentnow supports non-central moment calculation.scipy.stats.andersonnow supports theweibull_mindistribution.scipy.stats.semandscipy.stats.iqrnow supportaxis,nan_policy, and masked array input.
Deprecated features
- Multi-Ellipsis sparse matrix indexing has been deprecated and will be removed in SciPy 1.13.
- Several methods were deprecated for sparse arrays:
asfptype,getrow,getcol,get_shape,getmaxprint,set_shape,getnnz, andgetformat. Additionally, the.Aand.Hattributes were deprecated. Sparse matrix types are not affected. - The
scipy.linalgfunctionstri,triu&trilare deprecated and will be removed in SciPy 1.13. Users are recommended to use the NumPy versions of these functions with identical names. - The
scipy.signalfunctionsbspline,quadratic&cubicare deprecated and will be removed in SciPy 1.13. Users are recommended to usescipy.interpolate.BSplineinstead. - The
evenkeyword ofscipy.integrate.simpsonis deprecated and will be removed in SciPy 1.13.0. Users should leave this as the default as this gives improved accuracy compared to the other methods. - Using
exact=Truewhen passing integers in a float array tofactorialis deprecated and will be removed in SciPy 1.13.0. - float128 and object dtypes are deprecated for
scipy.signal.medfiltandscipy.signal.order_filter - The functions
scipy.signal.{lsim2, impulse2, step2}had long been deprecated in documentation only. They now raise a DeprecationWarning and will be removed in SciPy 1.13.0. - Importing window functions directly from
scipy.windowhas been soft deprecated since SciPy 1.1.0. They now raise aDeprecationWarningand will be removed in SciPy 1.13.0. Users should instead import them fromscipy.signal.windowor use the convenience functionscipy.signal.get_window.
Backwards incompatible changes
- The default for the
legacykeyword ofscipy.special.combhas changed fromTruetoFalse, as announced since its introduction.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- The
nkeyword has been removed fromscipy.stats.moment. - The
alphakeyword has been removed fromscipy.stats.interval. - The misspelt
gilbratdistribution has been removed (usescipy.stats.gibrat). - The deprecated spelling of the
kulsinskidistance metric has been removed (usescipy.spatial.distance.kulczynski1). - The
verticeskeyword ofscipy.spatial.Delauney.qhullhas been removed (use simplices). - The
residualproperty ofscipy.sparse.csgraph.maximum_flowhas been removed (useflow). - The
extradockeyword ofscipy.stats.rv_continuous,scipy.stats.rv_discreteandscipy.stats.rv_samplehas been removed. - The
sym_poskeyword ofscipy.linalg.solvehas been removed. - The
scipy.optimize.minimizefunction now raises an error forx0withx0.ndim > 1. - In
scipy.stats.mode, the default value ofkeepdimsis nowFalse, and support for non-numeric input has been removed. - The function
scipy.signal.lsimdoes not support non-uniform time steps anymore.
Other changes
- Rewrote the source build docs and restructured the contributor guide.
- Improved support for cross-compiling with meson build system.
- MyST-NB notebook infrastructure has been added to our documentation.
Authors
- h-vetinari (69)
- Oriol Abril-Pla (1) +
- Tom Adamczewski (1) +
- Anton Akhmerov (13)
- Andrey Akinshin (1) +
- alice (1) +
- Oren Amsalem (1)
- Ross Barnowski (13)
- Christoph Baumgarten (2)
- Dawson Beatty (1) +
- Doron Behar (1) +
- Peter Bell (1)
- John Belmonte (1) +
- boeleman (1) +
- Jack Borchanian (1) +
- Matt Borland (3) +
- Jake Bowhay (40)
- Larry Bradley (1) +
- Sienna Brent (1) +
- Matthew Brett (1)
- Evgeni Burovski (39)
- Matthias Bussonnier (2)
- Maria Cann (1) +
- Alfredo Carella (1) +
- CJ Carey (34)
- Hood Chatham (2)
- Anirudh Dagar (3)
- Alberto Defendi (1) +
- Pol del Aguila (1) +
- Hans Dembinski (1)
- Dennis (1) +
- Vinayak Dev (1) +
- Thomas Duvernay (1)
- DWesl (4)
- Stefan Endres (66)
- Evandro (1) +
- Tom Eversdijk (2) +
- Isuru Fernando (1)
- Franz Forstmayr (4)
- Joseph Fox-Rabinovitz (1)
- Stefano Frazzetto (1) +
- Neil Girdhar (1)
- Caden Gobat (1) +
- Ralf Gommers (152)
- GonVas (1) +
- Marco Gorelli (1)
- Brett Graham (2) +
- Matt Haberland (390)
- harshvardhan2707 (1) +
- Alex Herbert (1) +
- Guillaume Horel (1)
- Geert-Jan Huizing (1) +
- Jakob Jakobson (2)
- Julien Jerphanion (14)
- jyuv (2)
- Rajarshi Karmakar (1) +
- Ganesh Kathiresan (3) +
- Robert Kern (4)
- Andrew Knyazev (4)
- Sergey Koposov (1)
- Rishi Kulkarni (2) +
- Eric Larson (1)
- Zoufiné Lauer-Bare (2) +
- Antony Lee (3)
- Gregory R. Lee (8)
- Guillaume Lemaitre (2) +
- lilinjie (2) +
- Yannis Linardos (1) +
- Christian Lorentzen (5)
- Loïc Estève (1)
- Adam Lugowski (1) +
- Charlie Marsh (2) +
- Boris Martin (1) +
- Nicholas McKibben (11)
- Melissa Weber Mendonça (58)
- Michał Górny (1) +
- Jarrod Millman (5)
- Stefanie Molin (2) +
- Mark W. Mueller (1) +
- mustafacevik (1) +
- Takumasa N (1) +
- nboudrie (1)
- Andrew Nelson (112)
- Nico Schlömer (4)
- Lysandros Nikolaou (2) +
- Kyle Oman (1)
- OmarManzoor (2) +
- Simon Ott (1) +
- Geoffrey Oxberry (1) +
- Geoffrey M. Oxberry (2) +
- Sravya papaganti (1) +
- Tirth Patel (2)
- Ilhan Polat (32)
- Quentin Barthélemy (1)
- Matteo Raso (12) +
- Tyler Reddy (131)
- Lucas Roberts (1)
- Pamphile Roy (225)
- Jordan Rupprecht (1) +
- Atsushi Sakai (11)
- Omar Salman (7) +
- Leo Sandler (1) +
- Ujjwal Sarswat (3) +
- Saumya (1) +
- Daniel Schmitz (79)
- Henry Schreiner (2) +
- Dan Schult (8) +
- Eli Schwartz (6)
- Tomer Sery (2) +
- Scott Shambaugh (10) +
- Gagandeep Singh (1)
- Ethan Steinberg (6) +
- stepeos (2) +
- Albert Steppi (3)
- Strahinja Lukić (1)
- Kai Striega (4)
- suen-bit (1) +
- Tartopohm (2)
- Logan Thomas (2) +
- Jacopo Tissino (1) +
- Matus Valo (12) +
- Jacob Vanderplas (2)
- Christian Veenhuis (1) +
- Isaac Virshup (3)
- Stefan van der Walt (14)
- Warren Weckesser (63)
- windows-server-2003 (1)
- Levi John Wolf (3)
- Nobel Wong (1) +
- Benjamin Yeh (1) +
- Rory Yorke (1)
- Younes (2) +
- Zaikun ZHANG (1) +
- Alex Zverianskii (1) +
A total of 134 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.
- Python
Published by tylerjereddy almost 3 years ago
scipy - SciPy 1.11.0rc1
SciPy 1.11.0 Release Notes
Note: SciPy 1.11.0 is not released yet!
SciPy 1.11.0 is the culmination of 6 months of hard work. It contains
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.11.x branch, and on adding new features on the main branch.
This release requires Python 3.9+ and NumPy 1.21.6 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- Several
scipy.sparsearray API improvements, including a new public base class distinct from the older matrix class, proper 64-bit index support, and numerous deprecations paving the way to a modern sparse array experience. - Added three new statistical distributions, and wide-ranging performance and precision improvements to several other statistical distributions.
- A new function was added for quasi-Monte Carlo integration, and linear
algebra functions
detandlunow accept nD-arrays. - An
axesargument was added broadly tondimagefunctions, facilitating analysis of stacked image data.
New features
scipy.integrate improvements
- Added
scipy.integrate.qmc_quadfor quasi-Monte Carlo integration. - For an even number of points,
scipy.integrate.simpsonnow calculates a parabolic segment over the last three points which gives improved accuracy over the previous implementation.
scipy.cluster improvements
disjoint_sethas a new methodsubset_sizefor providing the size of a particular subset.
scipy.constants improvements
- The
quetta,ronna,ronto, andquectoSI prefixes were added.
scipy.linalg improvements
scipy.linalg.detis improved and now accepts nD-arrays.scipy.linalg.luis improved and now accepts nD-arrays. With the newp_indicesswitch the output permutation argument can be 1D(n,)permutation index instead of the full(n, n)array.
scipy.ndimage improvements
axesargument was added torank_filter,percentile_filter,median_filter,uniform_filter,minimum_filter,maximum_filter, andgaussian_filter, which can be useful for processing stacks of image data.
scipy.optimize improvements
scipy.optimize.linprognow passes unrecognized options directly to HiGHS.scipy.optimize.root_scalarnow uses Newton's method to be used without providingfprimeand thesecantmethod to be used without a second guess.scipy.optimize.lsq_linearnow acceptsboundsarguments of typescipy.optimize.Bounds.scipy.optimize.minimizemethod='cobyla'now supports simple bound constraints.- Users can opt into a new callback interface for most methods of
scipy.optimize.minimize: If the provided callback callable accepts a single keyword argument,intermediate_result,scipy.optimize.minimizenow passes both the current solution and the optimal value of the objective function to the callback as an instance ofscipy.optimize.OptimizeResult. It also allows the user to terminate optimization by raising aStopIterationexception from the callback function.scipy.optimize.minimizewill return normally, and the latest solution information is provided in the result object. scipy.optimize.curve_fitnow supports an optionalnan_policyargument.scipy.optimize.shgonow has parallelization with theworkersargument, symmetry arguments that can improve performance, class-based design to improve usability, and generally improved performance.
scipy.signal improvements
istfthas an improved warning message when the NOLA condition fails.
scipy.sparse improvements
scipy.sparsearray (not matrix) classes now return a sparse array instead of a dense array when divided by a dense array.- A new public base class
scipy.sparse.sparraywas introduced, allowingisinstance(x, scipy.sparse.sparray)to select the new sparse array classes, whileisinstance(x, scipy.sparse.spmatrix)selects only the old sparse matrix types. - The behavior of
scipy.sparse.isspmatrix()was updated to return True for only the sparse matrix types. If you want to check for either sparse arrays or sparse matrices, usescipy.sparse.issparse()instead. (Previously, these had identical behavior.) - Sparse arrays constructed with 64-bit indices will no longer automatically downcast to 32-bit.
- A new
scipy.sparse.diags_arrayfunction was added, which behaves like the existingscipy.sparse.diagsfunction except that it returns a sparse array instead of a sparse matrix. argminandargmaxmethods now return the correct result when no implicit zeros are present.
scipy.sparse.linalg improvements
- dividing
LinearOperatorby a number now returns a_ScaledLinearOperator LinearOperatornow supports right multiplication by arrayslobpcgshould be more efficient following removal of an extraneous QR decomposition.
scipy.spatial improvements
- Usage of new C++ backend for additional distance metrics, the majority of which will see substantial performance improvements, though a few minor regressions are known. These are focused on distances between boolean arrays.
scipy.special improvements
- The factorial functions
factorial,factorial2andfactorialkwere made consistent in their behavior (in terms of dimensionality, errors etc.). Additionally,factorial2can now handle arrays withexact=True, andfactorialkcan handle arrays.
scipy.stats improvements
New Features
scipy.stats.sobol_indices, a method to compute Sobol' sensitivity indices.scipy.stats.dunnett, which performs Dunnett's test of the means of multiple experimental groups against the mean of a control group.scipy.stats.ecdffor computing the empirical CDF and complementary CDF (survival function / SF) from uncensored or right-censored data. This function is also useful for survival analysis / Kaplain-Meier estimation.scipy.stats.logrankto compare survival functions underlying samples.scipy.stats.false_discovery_controlfor adjusting p-values to control the false discovery rate of multiple hypothesis tests using the Benjamini-Hochberg or Benjamini-Yekutieli procedures.scipy.stats.CensoredDatato represent censored data. It can be used as input to thefitmethod of univariate distributions and to the newecdffunction.- Filliben's goodness of fit test as
method='Filliben'ofscipy.stats.goodness_of_fit. scipy.stats.ttest_indhas a new method,confidence_intervalfor computing confidence intervals.scipy.stats.MonteCarloMethod,scipy.stats.PermutationMethod, andscipy.stats.BootstrapMethodare new classes to configure resampling and/or Monte Carlo versions of hypothesis tests. They can currently be used withscipy.stats.pearsonr.
Statistical Distributions
- Added the von-Mises Fisher distribution as
scipy.stats.vonmises_fisher. This distribution is the most common analogue of the normal distribution on the unit sphere. - Added the relativistic Breit-Wigner distribution as
scipy.stats.rel_breitwigner. It is used in high energy physics to model resonances. - Added the Dirichlet multinomial distribution as
scipy.stats.dirichlet_multinomial. Improved the speed and precision of several univariate statistical distributions.
scipy.stats.anglitsfscipy.stats.betaentropyscipy.stats.betaprimecdf,sf,ppfscipy.stats.chientropyscipy.stats.chi2entropyscipy.stats.dgammaentropy,cdf,sf,ppf, andisfscipy.stats.dweibullentropy,sf, andisfscipy.stats.exponweibsfandisfscipy.stats.fentropyscipy.stats.foldcauchysfscipy.stats.foldnormcdfandsfscipy.stats.gammaentropyscipy.stats.genexponppf,isf,rvsscipy.stats.gengammaentropyscipy.stats.geomentropyscipy.stats.genlogisticentropy,logcdf,sf,ppf, andisfscipy.stats.genhyperboliccdfandsfscipy.stats.gibratsfandisfscipy.stats.gompertzentropy,sf. andisfscipy.stats.halflogisticsf, andisfscipy.stats.halfcauchysfandisfscipy.stats.halfnormcdf,sf, andisfscipy.stats.invgammaentropyscipy.stats.invgaussentropyscipy.stats.johnsonsbpdf,cdf,sf,ppf, andisfscipy.stats.johnsonsupdf,sf,isf, andstatsscipy.stats.lognormfitscipy.stats.loguniformentropy,logpdf,pdf,cdf,ppf, andstatsscipy.stats.maxwellsfandisfscipy.stats.nakagamientropyscipy.stats.powerlawsfscipy.stats.powerlognormlogpdf,logsf,sf, andisfscipy.stats.powernormsfandisfscipy.stats.tentropy,logpdf, andpdfscipy.stats.truncexponsf, andisfscipy.stats.truncnormentropyscipy.stats.truncparetofitscipy.stats.vonmisesfit
scipy.stats.multivariate_tnow hascdfandentropymethods.scipy.stats.multivariate_normal,scipy.stats.matrix_normal, andscipy.stats.invwishartnow have anentropymethod.
Other Improvements
scipy.stats.monte_carlo_testnow supports multi-sample statistics.scipy.stats.bootstrapcan now produce one-sided confidence intervals.scipy.stats.rankdataperformance was improved formethod=ordinalandmethod=dense.scipy.stats.momentnow supports non-central moment calculation.scipy.stats.andersonnow supports theweibull_mindistribution.scipy.stats.semandscipy.stats.iqrnow supportaxis,nan_policy, and masked array input.
Deprecated features
- Multi-Ellipsis sparse matrix indexing has been deprecated and will be removed in SciPy 1.13.
- Several methods were deprecated for sparse arrays:
asfptype,getrow,getcol,get_shape,getmaxprint,set_shape,getnnz, andgetformat. Additionally, the.Aand.Hattributes were deprecated. Sparse matrix types are not affected. - The
scipy.linalgfunctionstri,triu&trilare deprecated and will be removed in SciPy 1.13. Users are recommended to use the NumPy versions of these functions with identical names. - The
scipy.signalfunctionsbspline,quadratic&cubicare deprecated and will be removed in SciPy 1.13. Users are recommended to usescipy.interpolate.BSplineinstead. - The
evenkeyword ofscipy.integrate.simpsonis deprecated and will be removed in SciPy 1.13.0. Users should leave this as the default as this gives improved accuracy compared to the other methods. - Using
exact=Truewhen passing integers in a float array tofactorialis deprecated and will be removed in SciPy 1.13.0. - float128 and object dtypes are deprecated for
scipy.signal.medfiltandscipy.signal.order_filter - The functions
scipy.signal.{lsim2, impulse2, step2}had long been deprecated in documentation only. They now raise a DeprecationWarning and will be removed in SciPy 1.13.0. - Importing window functions directly from
scipy.windowhas been soft deprecated since SciPy 1.1.0. They now raise aDeprecationWarningand will be removed in SciPy 1.13.0. Users should instead import them fromscipy.signal.windowor use the convenience functionscipy.signal.get_window.
Backwards incompatible changes
- The default for the
legacykeyword ofscipy.special.combhas changed fromTruetoFalse, as announced since its introduction.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- The
nkeyword has been removed fromscipy.stats.moment. - The
alphakeyword has been removed fromscipy.stats.interval. - The misspelt
gilbratdistribution has been removed (usescipy.stats.gibrat). - The deprecated spelling of the
kulsinskidistance metric has been removed (usescipy.spatial.distance.kulczynski1). - The
verticeskeyword ofscipy.spatial.Delauney.qhullhas been removed (use simplices). - The
residualproperty ofscipy.sparse.csgraph.maximum_flowhas been removed (useflow). - The
extradockeyword ofscipy.stats.rv_continuous,scipy.stats.rv_discreteandscipy.stats.rv_samplehas been removed. - The
sym_poskeyword ofscipy.linalg.solvehas been removed. - The
scipy.optimize.minimizefunction now raises an error forx0withx0.ndim > 1. - In
scipy.stats.mode, the default value ofkeepdimsis nowFalse, and support for non-numeric input has been removed. - The function
scipy.signal.lsimdoes not support non-uniform time steps anymore.
Other changes
- Rewrote the source build docs and restructured the contributor guide.
- Improved support for cross-compiling with meson build system.
- MyST-NB notebook infrastructure has been added to our documentation.
Authors
- h-vetinari (69)
- Oriol Abril-Pla (1) +
- Anton Akhmerov (13)
- Andrey Akinshin (1) +
- alice (1) +
- Oren Amsalem (1)
- Ross Barnowski (11)
- Christoph Baumgarten (2)
- Dawson Beatty (1) +
- Doron Behar (1) +
- Peter Bell (1)
- John Belmonte (1) +
- boeleman (1) +
- Jack Borchanian (1) +
- Matt Borland (3) +
- Jake Bowhay (40)
- Sienna Brent (1) +
- Matthew Brett (1)
- Evgeni Burovski (38)
- Matthias Bussonnier (2)
- Maria Cann (1) +
- Alfredo Carella (1) +
- CJ Carey (18)
- Hood Chatham (2)
- Anirudh Dagar (3)
- Alberto Defendi (1) +
- Pol del Aguila (1) +
- Hans Dembinski (1)
- Dennis (1) +
- Vinayak Dev (1) +
- Thomas Duvernay (1)
- DWesl (4)
- Stefan Endres (66)
- Evandro (1) +
- Tom Eversdijk (2) +
- Isuru Fernando (1)
- Franz Forstmayr (4)
- Joseph Fox-Rabinovitz (1)
- Stefano Frazzetto (1) +
- Neil Girdhar (1)
- Caden Gobat (1) +
- Ralf Gommers (146)
- GonVas (1) +
- Marco Gorelli (1)
- Brett Graham (2) +
- Matt Haberland (385)
- harshvardhan2707 (1) +
- Alex Herbert (1) +
- Guillaume Horel (1)
- Geert-Jan Huizing (1) +
- Jakob Jakobson (2)
- Julien Jerphanion (5)
- jyuv (2)
- Rajarshi Karmakar (1) +
- Ganesh Kathiresan (3) +
- Robert Kern (4)
- Andrew Knyazev (3)
- Sergey Koposov (1)
- Rishi Kulkarni (2) +
- Eric Larson (1)
- Zoufiné Lauer-Bare (2) +
- Antony Lee (3)
- Gregory R. Lee (8)
- Guillaume Lemaitre (1) +
- lilinjie (2) +
- Yannis Linardos (1) +
- Christian Lorentzen (5)
- Loïc Estève (1)
- Charlie Marsh (2) +
- Boris Martin (1) +
- Nicholas McKibben (10)
- Melissa Weber Mendonça (57)
- Michał Górny (1) +
- Jarrod Millman (2)
- Stefanie Molin (2) +
- Mark W. Mueller (1) +
- mustafacevik (1) +
- Takumasa N (1) +
- nboudrie (1)
- Andrew Nelson (111)
- Nico Schlömer (4)
- Lysandros Nikolaou (2) +
- Kyle Oman (1)
- OmarManzoor (2) +
- Simon Ott (1) +
- Geoffrey Oxberry (1) +
- Geoffrey M. Oxberry (2) +
- Sravya papaganti (1) +
- Tirth Patel (2)
- Ilhan Polat (32)
- Quentin Barthélemy (1)
- Matteo Raso (12) +
- Tyler Reddy (97)
- Lucas Roberts (1)
- Pamphile Roy (224)
- Jordan Rupprecht (1) +
- Atsushi Sakai (11)
- Omar Salman (7) +
- Leo Sandler (1) +
- Ujjwal Sarswat (3) +
- Saumya (1) +
- Daniel Schmitz (79)
- Henry Schreiner (2) +
- Dan Schult (3) +
- Eli Schwartz (6)
- Tomer Sery (2) +
- Scott Shambaugh (4) +
- Gagandeep Singh (1)
- Ethan Steinberg (6) +
- stepeos (2) +
- Albert Steppi (3)
- Strahinja Lukić (1)
- Kai Striega (4)
- suen-bit (1) +
- Tartopohm (2)
- Logan Thomas (2) +
- Jacopo Tissino (1) +
- Matus Valo (10) +
- Jacob Vanderplas (2)
- Christian Veenhuis (1) +
- Isaac Virshup (1)
- Stefan van der Walt (14)
- Warren Weckesser (63)
- windows-server-2003 (1)
- Levi John Wolf (3)
- Nobel Wong (1) +
- Benjamin Yeh (1) +
- Rory Yorke (1)
- Younes (2) +
- Zaikun ZHANG (1) +
- Alex Zverianskii (1) +
A total of 131 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.
- Python
Published by tylerjereddy almost 3 years ago
scipy - SciPy 1.10.1
SciPy 1.10.1 Release Notes
SciPy 1.10.1 is a bug-fix release with no new features
compared to 1.10.0.
Authors
- Name (commits)
- alice (1) +
- Matt Borland (2) +
- Evgeni Burovski (2)
- CJ Carey (1)
- Ralf Gommers (9)
- Brett Graham (1) +
- Matt Haberland (5)
- Alex Herbert (1) +
- Ganesh Kathiresan (2) +
- Rishi Kulkarni (1) +
- Loïc Estève (1)
- Michał Górny (1) +
- Jarrod Millman (1)
- Andrew Nelson (4)
- Tyler Reddy (50)
- Pamphile Roy (2)
- Eli Schwartz (2)
- Tomer Sery (1) +
- Kai Striega (1)
- Jacopo Tissino (1) +
- windows-server-2003 (1)
A total of 21 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.
- Python
Published by tylerjereddy over 3 years ago
scipy - SciPy 1.10.0
SciPy 1.10.0 Release Notes
SciPy 1.10.0 is the culmination of 6 months of hard work. It contains
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.10.x branch, and on adding new features on the main branch.
This release requires Python 3.8+ and NumPy 1.19.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A new dedicated datasets submodule (
scipy.datasets) has been added, and is now preferred over usage ofscipy.miscfor dataset retrieval. - A new
scipy.interpolate.make_smoothing_splinefunction was added. This function constructs a smoothing cubic spline from noisy data, using the generalized cross-validation (GCV) criterion to find the tradeoff between smoothness and proximity to data points. scipy.statshas three new distributions, two new hypothesis tests, three new sample statistics, a class for greater control over calculations involving covariance matrices, and many other enhancements.
New features
scipy.datasets introduction
- A new dedicated
datasetssubmodule has been added. The submodules is meant for datasets that are relevant to other SciPy submodules ands content (tutorials, examples, tests), as well as contain a curated set of datasets that are of wider interest. As of this release, all the datasets fromscipy.mischave been added toscipy.datasets(and deprecated inscipy.misc). - The submodule is based on Pooch (a new optional dependency for SciPy), a Python package to simplify fetching data files. This move will, in a subsequent release, facilitate SciPy to trim down the sdist/wheel sizes, by decoupling the data files and moving them out of the SciPy repository, hosting them externally and downloading them when requested. After downloading the datasets once, the files are cached to avoid network dependence and repeated usage.
- Added datasets from
scipy.misc:scipy.datasets.face,scipy.datasets.ascent,scipy.datasets.electrocardiogram Added download and caching functionality:
scipy.datasets.download_all: a function to download all thescipy.datasetsassociated files at once.scipy.datasets.clear_cache: a simple utility function to clear cached dataset files from the file system.scipy/datasets/_download_all.pycan be run as a standalone script for packaging purposes to avoid any external dependency at build or test time. This can be used by SciPy packagers (e.g., for Linux distros) which may have to adhere to rules that forbid downloading sources from external repositories at package build time.
scipy.integrate improvements
- Added parameter
complex_functoscipy.integrate.quad, which can be setTrueto integrate a complex integrand.
scipy.interpolate improvements
scipy.interpolate.interpnnow supports tensor-product interpolation methods (slinear,cubic,quinticandpchip)- Tensor-product interpolation methods (
slinear,cubic,quinticandpchip) inscipy.interpolate.interpnandscipy.interpolate.RegularGridInterpolatornow allow values with trailing dimensions. scipy.interpolate.RegularGridInterpolatorhas a new fast path formethod="linear"with 2D data, andRegularGridInterpolatoris now easier to subclassscipy.interpolate.interp1dnow can take a single value for non-spline methods.- A new
extrapolateargument is available toscipy.interpolate.BSpline.design_matrix, allowing extrapolation based on the first and last intervals. - A new function
scipy.interpolate.make_smoothing_splinehas been added. It is an implementation of the generalized cross-validation spline smoothing algorithm. Thelam=None(default) mode of this function is a clean-room reimplementation of the classicgcvspl.fFortran algorithm for constructing GCV splines. - A new
method="pchip"mode was aded toscipy.interpolate.RegularGridInterpolator. This mode constructs an interpolator using tensor products of C1-continuous monotone splines (essentially, ascipy.interpolate.PchipInterpolatorinstance per dimension).
scipy.sparse.linalg improvements
- The spectral 2-norm is now available in
scipy.sparse.linalg.norm. - The performance of
scipy.sparse.linalg.normfor the default case (Frobenius norm) has been improved. - LAPACK wrappers were added for
trexcandtrsen. The
scipy.sparse.linalg.lobpcgalgorithm was rewritten, yielding the following improvements:- a simple tunable restart potentially increases the attainable accuracy for edge cases,
- internal postprocessing runs one final exact Rayleigh-Ritz method giving more accurate and orthonormal eigenvectors,
- output the computed iterate with the smallest max norm of the residual and drop the history of subsequent iterations,
- remove the check for
LinearOperatorformat input and thus allow a simple function handle of a callable object as an input, - better handling of common user errors with input data, rather than letting the algorithm fail.
scipy.linalg improvements
scipy.linalg.lu_factornow accepts rectangular arrays instead of being restricted to square arrays.
scipy.ndimage improvements
- The new
scipy.ndimage.value_indicesfunction provides a time-efficient method to search for the locations of individual values with an array of image data. - A new
radiusargument is supported byscipy.ndimage.gaussian_filter1dandscipy.ndimage.gaussian_filterfor adjusting the kernel size of the filter.
scipy.optimize improvements
scipy.optimize.brutenow coerces non-iterable/single-valueargsinto a tuple.scipy.optimize.least_squaresandscipy.optimize.curve_fitnow acceptscipy.optimize.Boundsfor bounds constraints.- Added a tutorial for
scipy.optimize.milp. - Improved the pretty-printing of
scipy.optimize.OptimizeResultobjects. - Additional options (
parallel,threads,mip_rel_gap) can now be passed toscipy.optimize.linprogwithmethod='highs'.
scipy.signal improvements
- The new window function
scipy.signal.windows.lanczoswas added to compute a Lanczos window, also known as a sinc window.
scipy.sparse.csgraph improvements
- the performance of
scipy.sparse.csgraph.dijkstrahas been improved, and star graphs in particular see a marked performance improvement
scipy.special improvements
- The new function
scipy.special.powm1, a ufunc with signaturepowm1(x, y), computesx**y - 1. The function avoids the loss of precision that can result whenyis close to 0 or whenxis close to 1. scipy.special.erfinvis now more accurate as it leverages the Boost equivalent under the hood.
scipy.stats improvements
- Added
scipy.stats.goodness_of_fit, a generalized goodness-of-fit test for use with any univariate distribution, any combination of known and unknown parameters, and several choices of test statistic (Kolmogorov-Smirnov, Cramer-von Mises, and Anderson-Darling). - Improved
scipy.stats.bootstrap: Default method'BCa'now supports multi-sample statistics. Also, the bootstrap distribution is returned in the result object, and the result object can be passed into the function as parameterbootstrap_resultto add additional resamples or change the confidence interval level and type. - Added maximum spacing estimation to
scipy.stats.fit. - Added the Poisson means test ("E-test") as
scipy.stats.poisson_means_test. Added new sample statistics.
- Added
scipy.stats.contingency.odds_ratioto compute both the conditional and unconditional odds ratios and corresponding confidence intervals for 2x2 contingency tables. - Added
scipy.stats.directional_statsto compute sample statistics of n-dimensional directional data. - Added
scipy.stats.expectile, which generalizes the expected value in the same way as quantiles are a generalization of the median.
- Added
Added new statistical distributions.
- Added
scipy.stats.uniform_direction, a multivariate distribution to sample uniformly from the surface of a hypersphere. - Added
scipy.stats.random_table, a multivariate distribution to sample uniformly from m x n contingency tables with provided marginals. - Added
scipy.stats.truncpareto, the truncated Pareto distribution.
- Added
Improved the
fitmethod of several distributions.scipy.stats.skewnormandscipy.stats.weibull_minnow use an analytical solution whenmethod='mm', which also serves a starting guess to improve the performance ofmethod='mle'.scipy.stats.gumbel_randscipy.stats.gumbel_l: analytical maximum likelihood estimates have been extended to the cases in which location or scale are fixed by the user.- Analytical maximum likelihood estimates have been added for
scipy.stats.powerlaw.
Improved random variate sampling of several distributions.
- Drawing multiple samples from
scipy.stats.matrix_normal,scipy.stats.ortho_group,scipy.stats.special_ortho_group, andscipy.stats.unitary_groupis faster. - The
rvsmethod ofscipy.stats.vonmisesnow wraps to the interval[-np.pi, np.pi]. - Improved the reliability of
scipy.stats.loggammarvsmethod for small values of the shape parameter.
- Drawing multiple samples from
Improved the speed and/or accuracy of functions of several statistical distributions.
- Added
scipy.stats.Covariancefor better speed, accuracy, and user control in multivariate normal calculations. scipy.stats.skewnormmethodscdf,sf,ppf, andisfmethods now use the implementations from Boost, improving speed while maintaining accuracy. The calculation of higher-order moments is also faster and more accurate.scipy.stats.invgaussmethodsppfandisfmethods now use the implementations from Boost, improving speed and accuracy.scipy.stats.invweibullmethodssfandisfare more accurate for small probability masses.scipy.stats.nctandscipy.stats.ncx2now rely on the implementations from Boost, improving speed and accuracy.- Implemented the
logpdfmethod ofscipy.stats.vonmisesfor reliability in extreme tails. - Implemented the
isfmethod ofscipy.stats.levyfor speed and accuracy. - Improved the robustness of
scipy.stats.studentized_rangefor largedfby adding an infinite degree-of-freedom approximation. - Added a parameter
lower_limittoscipy.stats.multivariate_normal, allowing the user to change the integration limit from -inf to a desired value. - Improved the robustness of
entropyofscipy.stats.vonmisesfor large concentration values.
- Added
Enhanced
scipy.stats.gaussian_kde.- Added
scipy.stats.gaussian_kde.marginal, which returns the desired marginal distribution of the original kernel density estimate distribution. - The
cdfmethod ofscipy.stats.gaussian_kdenow accepts alower_limitparameter for integrating the PDF over a rectangular region. - Moved calculations for
scipy.stats.gaussian_kde.logpdfto Cython, improving speed. - The global interpreter lock is released by the
pdfmethod ofscipy.stats.gaussian_kdefor improved multithreading performance. - Replaced explicit matrix inversion with Cholesky decomposition for speed and accuracy.
- Added
Enhanced the result objects returned by many
scipy.statsfunctions- Added a
confidence_intervalmethod to the result object returned byscipy.stats.ttest_1sampandscipy.stats.ttest_rel. - The
scipy.statsfunctionscombine_pvalues,fisher_exact,chi2_contingency,median_testandmoodnow return bunch objects rather than plain tuples, allowing attributes to be accessed by name. - Attributes of the result objects returned by
multiscale_graphcorr,anderson_ksamp,binomtest,crosstab,pointbiserialr,spearmanr,kendalltau, andweightedtauhave been renamed tostatisticandpvaluefor consistency throughoutscipy.stats. Old attribute names are still allowed for backward compatibility. scipy.stats.andersonnow returns the parameters of the fitted distribution in ascipy.stats._result_classes.FitResultobject.- The
plotmethod ofscipy.stats._result_classes.FitResultnow accepts aplot_typeparameter; the options are'hist'(histogram, default),'qq'(Q-Q plot),'pp'(P-P plot), and'cdf'(empirical CDF plot). - Kolmogorov-Smirnov tests (e.g.
scipy.stats.kstest) now return the location (argmax) at which the statistic is calculated and the variant of the statistic used.
- Added a
Improved the performance of several
scipy.statsfunctions.- Improved the performance of
scipy.stats.cramervonmises_2sampandscipy.stats.ks_2sampwithmethod='exact'. - Improved the performance of
scipy.stats.siegelslopes. - Improved the performance of
scipy.stats.mstats.hdquantile_sd. - Improved the performance of
scipy.stats.binned_statistic_ddfor several NumPy statistics, and binned statistics methods now support complex data.
- Improved the performance of
Added the
scrambleoptional argument toscipy.stats.qmc.LatinHypercube. It replacescentered, which is now deprecated.Added a parameter
optimizationto allscipy.stats.qmc.QMCEnginesubclasses to improve characteristics of the quasi-random variates.Added tie correction to
scipy.stats.mood.Added tutorials for resampling methods in
scipy.stats.scipy.stats.bootstrap,scipy.stats.permutation_test, andscipy.stats.monte_carlo_testnow automatically detect whether the providedstatisticis vectorized, so passing thevectorizedargument explicitly is no longer required to take advantage of vectorized statistics.Improved the speed of
scipy.stats.permutation_testfor permutation types'samples'and'pairings'.Added
axis,nan_policy, and masked array support toscipy.stats.jarque_bera.Added the
nan_policyoptional argument toscipy.stats.rankdata.
Deprecated features
scipy.miscmodule and all the methods inmiscare deprecated in v1.10 and will be completely removed in SciPy v2.0.0. Users are suggested to utilize thescipy.datasetsmodule instead for the dataset methods.scipy.stats.qmc.LatinHypercubeparametercenteredhas been deprecated. It is replaced by thescrambleargument for more consistency with other QMC engines.scipy.interpolate.interp2dclass has been deprecated. The docstring of the deprecated routine lists recommended replacements.
Expired Deprecations
- There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
- Removed
cond&rcondkwargs inlinalg.pinv - Removed wrappers
scipy.linalg.blas.{clapack, flapack} - Removed
scipy.stats.NumericalInverseHermiteand removedtol&max_intervalskwargs fromscipy.stats.sampling.NumericalInverseHermite - Removed
local_search_optionskwarg frromscipy.optimize.dual_annealing.
- Removed
Other changes
scipy.stats.bootstrap,scipy.stats.permutation_test, andscipy.stats.monte_carlo_testnow automatically detect whether the providedstatisticis vectorized by looking for anaxisparameter in the signature ofstatistic. If anaxisparameter is present instatisticbut should not be relied on for vectorized calls, users must pass optionvectorized==Falseexplicitly.scipy.stats.multivariate_normalwill now raise aValueErrorwhen the covariance matrix is not positive semidefinite, regardless of which method is called.
Authors
- Name (commits)
- h-vetinari (10)
- Jelle Aalbers (1)
- Oriol Abril-Pla (1) +
- Alan-Hung (1) +
- Tania Allard (7)
- Oren Amsalem (1) +
- Sven Baars (10)
- Balthasar (1) +
- Ross Barnowski (1)
- Christoph Baumgarten (2)
- Peter Bell (2)
- Sebastian Berg (1)
- Aaron Berk (1) +
- boatwrong (1) +
- boeleman (1) +
- Jake Bowhay (50)
- Matthew Brett (4)
- Evgeni Burovski (93)
- Matthias Bussonnier (6)
- Dominic C (2)
- Mingbo Cai (1) +
- James Campbell (2) +
- CJ Carey (4)
- cesaregarza (1) +
- charlie0389 (1) +
- Hood Chatham (5)
- Andrew Chin (1) +
- Daniel Ching (1) +
- Leo Chow (1) +
- chris (3) +
- John Clow (1) +
- cm7S (1) +
- cmgodwin (1) +
- Christopher Cowden (2) +
- Henry Cuzco (2) +
- Anirudh Dagar (12)
- Hans Dembinski (2) +
- Jaiden di Lanzo (24) +
- Felipe Dias (1) +
- Dieter Werthmüller (1)
- Giuseppe Dilillo (1) +
- dpoerio (1) +
- drpeteb (1) +
- Christopher Dupuis (1) +
- Jordan Edmunds (1) +
- Pieter Eendebak (1) +
- Jérome Eertmans (1) +
- Fabian Egli (2) +
- Sebastian Ehlert (2) +
- Kian Eliasi (1) +
- Tomohiro Endo (1) +
- Stefan Endres (1)
- Zeb Engberg (4) +
- Jonas Eschle (1) +
- Thomas J. Fan (9)
- fiveseven (1) +
- Neil Flood (1) +
- Franz Forstmayr (1)
- Sara Fridovich-Keil (1)
- David Gilbertson (1) +
- Ralf Gommers (251)
- Marco Gorelli (2) +
- Matt Haberland (387)
- Andrew Hawryluk (2) +
- Christoph Hohnerlein (2) +
- Loïc Houpert (2) +
- Shamus Husheer (1) +
- ideasrule (1) +
- imoiwm (1) +
- Lakshaya Inani (1) +
- Joseph T. Iosue (1)
- iwbc-mzk (1) +
- Nathan Jacobi (3) +
- Julien Jerphanion (5)
- He Jia (1)
- jmkuebler (1) +
- Johannes Müller (1) +
- Vedant Jolly (1) +
- Juan Luis Cano Rodríguez (2)
- Justin (1) +
- jvavrek (1) +
- jyuv (2)
- Kai Mühlbauer (1) +
- Nikita Karetnikov (3) +
- Reinert Huseby Karlsen (1) +
- kaspar (2) +
- Toshiki Kataoka (1)
- Robert Kern (3)
- Joshua Klein (1) +
- Andrew Knyazev (7)
- Jozsef Kutas (16) +
- Eric Larson (4)
- Lechnio (1) +
- Antony Lee (2)
- Aditya Limaye (1) +
- Xingyu Liu (2)
- Christian Lorentzen (4)
- Loïc Estève (2)
- Thibaut Lunet (2) +
- Peter Lysakovski (1)
- marianasalamoni (2) +
- mariprudencio (1) +
- Paige Martin (1) +
- Arno Marty (1) +
- matthewborish (3) +
- Damon McDougall (1)
- Nicholas McKibben (22)
- McLP (1) +
- mdmahendri (1) +
- Melissa Weber Mendonça (9)
- Jarrod Millman (1)
- Naoto Mizuno (2)
- Shashaank N (1)
- Pablo S Naharro (1) +
- nboudrie (2) +
- Andrew Nelson (52)
- Nico Schlömer (1)
- NiMlr (1) +
- o-alexandre-felipe (1) +
- Maureen Ononiwu (1) +
- Dimitri Papadopoulos (2) +
- partev (1) +
- Tirth Patel (10)
- Paulius Šarka (1) +
- Josef Perktold (1)
- Giacomo Petrillo (3) +
- Matti Picus (1)
- Rafael Pinto (1) +
- PKNaveen (1) +
- Ilhan Polat (6)
- Akshita Prasanth (2) +
- Sean Quinn (1)
- Tyler Reddy (155)
- Martin Reinecke (1)
- Ned Richards (1)
- Marie Roald (1) +
- Sam Rosen (4) +
- Pamphile Roy (105)
- sabonerune (2) +
- Atsushi Sakai (94)
- Daniel Schmitz (27)
- Anna Scholtz (1) +
- Eli Schwartz (11)
- serge-sans-paille (2)
- JEEVANSHI SHARMA (1) +
- ehsan shirvanian (2) +
- siddhantwahal (2)
- Mathieu Dutour Sikiric (1) +
- Sourav Singh (1)
- Alexander Soare (1) +
- Bjørge Solli (2) +
- Scott Staniewicz (1)
- Ethan Steinberg (3) +
- Albert Steppi (3)
- Thomas Stoeger (1) +
- Kai Striega (4)
- Tartopohm (1) +
- Mamoru TASAKA (2) +
- Ewout ter Hoeven (5)
- TianyiQ (1) +
- Tiger (1) +
- Will Tirone (1)
- Ajay Shanker Tripathi (1) +
- Edgar Andrés Margffoy Tuay (1) +
- Dmitry Ulyumdzhiev (1) +
- Hari Vamsi (1) +
- VitalyChait (1) +
- Rik Voorhaar (1) +
- Samuel Wallan (4)
- Stefan van der Walt (2)
- Warren Weckesser (145)
- wei2222 (1) +
- windows-server-2003 (3) +
- Marek Wojciechowski (2) +
- Niels Wouda (1) +
- WRKampi (1) +
- Yeonjoo Yoo (1) +
- Rory Yorke (1)
- Xiao Yuan (2) +
- Meekail Zain (2) +
- Fabio Zanini (1) +
- Steffen Zeile (1) +
- Egor Zemlyanoy (19)
- Gavin Zhang (3) +
A total of 184 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.
- Python
Published by tylerjereddy over 3 years ago
scipy - SciPy 1.10.0rc2
SciPy 1.10.0 Release Notes
Note: SciPy 1.10.0 is not released yet!
SciPy 1.10.0 is the culmination of 6 months of hard work. It contains
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.10.x branch, and on adding new features on the main branch.
This release requires Python 3.8+ and NumPy 1.19.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A new dedicated datasets submodule (
scipy.datasets) has been added, and is now preferred over usage ofscipy.miscfor dataset retrieval. - A new
scipy.interpolate.make_smoothing_splinefunction was added. This function constructs a smoothing cubic spline from noisy data, using the generalized cross-validation (GCV) criterion to find the tradeoff between smoothness and proximity to data points. scipy.statshas three new distributions, two new hypothesis tests, three new sample statistics, a class for greater control over calculations involving covariance matrices, and many other enhancements.
New features
scipy.datasets introduction
- A new dedicated
datasetssubmodule has been added. The submodules is meant for datasets that are relevant to other SciPy submodules ands content (tutorials, examples, tests), as well as contain a curated set of datasets that are of wider interest. As of this release, all the datasets fromscipy.mischave been added toscipy.datasets(and deprecated inscipy.misc). - The submodule is based on Pooch (a new optional dependency for SciPy), a Python package to simplify fetching data files. This move will, in a subsequent release, facilitate SciPy to trim down the sdist/wheel sizes, by decoupling the data files and moving them out of the SciPy repository, hosting them externally and downloading them when requested. After downloading the datasets once, the files are cached to avoid network dependence and repeated usage.
- Added datasets from
scipy.misc:scipy.datasets.face,scipy.datasets.ascent,scipy.datasets.electrocardiogram Added download and caching functionality:
scipy.datasets.download_all: a function to download all thescipy.datasetsassociated files at once.scipy.datasets.clear_cache: a simple utility function to clear cached dataset files from the file system.scipy/datasets/_download_all.pycan be run as a standalone script for packaging purposes to avoid any external dependency at build or test time. This can be used by SciPy packagers (e.g., for Linux distros) which may have to adhere to rules that forbid downloading sources from external repositories at package build time.
scipy.integrate improvements
- Added
scipy.integrate.qmc_quad, which performs quadrature using Quasi-Monte Carlo points. - Added parameter
complex_functoscipy.integrate.quad, which can be setTrueto integrate a complex integrand.
scipy.interpolate improvements
scipy.interpolate.interpnnow supports tensor-product interpolation methods (slinear,cubic,quinticandpchip)- Tensor-product interpolation methods (
slinear,cubic,quinticandpchip) inscipy.interpolate.interpnandscipy.interpolate.RegularGridInterpolatornow allow values with trailing dimensions. scipy.interpolate.RegularGridInterpolatorhas a new fast path formethod="linear"with 2D data, andRegularGridInterpolatoris now easier to subclassscipy.interpolate.interp1dnow can take a single value for non-spline methods.- A new
extrapolateargument is available toscipy.interpolate.BSpline.design_matrix, allowing extrapolation based on the first and last intervals. - A new function
scipy.interpolate.make_smoothing_splinehas been added. It is an implementation of the generalized cross-validation spline smoothing algorithm. Thelam=None(default) mode of this function is a clean-room reimplementation of the classicgcvspl.fFortran algorithm for constructing GCV splines. - A new
method="pchip"mode was aded toscipy.interpolate.RegularGridInterpolator. This mode constructs an interpolator using tensor products of C1-continuous monotone splines (essentially, ascipy.interpolate.PchipInterpolatorinstance per dimension).
scipy.sparse.linalg improvements
- The spectral 2-norm is now available in
scipy.sparse.linalg.norm. - The performance of
scipy.sparse.linalg.normfor the default case (Frobenius norm) has been improved. - LAPACK wrappers were added for
trexcandtrsen. The
scipy.sparse.linalg.lobpcgalgorithm was rewritten, yielding the following improvements:- a simple tunable restart potentially increases the attainable accuracy for edge cases,
- internal postprocessing runs one final exact Rayleigh-Ritz method giving more accurate and orthonormal eigenvectors,
- output the computed iterate with the smallest max norm of the residual and drop the history of subsequent iterations,
- remove the check for
LinearOperatorformat input and thus allow a simple function handle of a callable object as an input, - better handling of common user errors with input data, rather than letting the algorithm fail.
scipy.linalg improvements
scipy.linalg.lu_factornow accepts rectangular arrays instead of being restricted to square arrays.
scipy.ndimage improvements
- The new
scipy.ndimage.value_indicesfunction provides a time-efficient method to search for the locations of individual values with an array of image data. - A new
radiusargument is supported byscipy.ndimage.gaussian_filter1dandscipy.ndimage.gaussian_filterfor adjusting the kernel size of the filter.
scipy.optimize improvements
scipy.optimize.brutenow coerces non-iterable/single-valueargsinto a tuple.scipy.optimize.least_squaresandscipy.optimize.curve_fitnow acceptscipy.optimize.Boundsfor bounds constraints.- Added a tutorial for
scipy.optimize.milp. - Improved the pretty-printing of
scipy.optimize.OptimizeResultobjects. - Additional options (
parallel,threads,mip_rel_gap) can now be passed toscipy.optimize.linprogwithmethod='highs'.
scipy.signal improvements
- The new window function
scipy.signal.windows.lanczoswas added to compute a Lanczos window, also known as a sinc window.
scipy.sparse.csgraph improvements
- the performance of
scipy.sparse.csgraph.dijkstrahas been improved, and star graphs in particular see a marked performance improvement
scipy.special improvements
- The new function
scipy.special.powm1, a ufunc with signaturepowm1(x, y), computesx**y - 1. The function avoids the loss of precision that can result whenyis close to 0 or whenxis close to 1. scipy.special.erfinvis now more accurate as it leverages the Boost equivalent under the hood.
scipy.stats improvements
- Added
scipy.stats.goodness_of_fit, a generalized goodness-of-fit test for use with any univariate distribution, any combination of known and unknown parameters, and several choices of test statistic (Kolmogorov-Smirnov, Cramer-von Mises, and Anderson-Darling). - Improved
scipy.stats.bootstrap: Default method'BCa'now supports multi-sample statistics. Also, the bootstrap distribution is returned in the result object, and the result object can be passed into the function as parameterbootstrap_resultto add additional resamples or change the confidence interval level and type. - Added maximum spacing estimation to
scipy.stats.fit. - Added the Poisson means test ("E-test") as
scipy.stats.poisson_means_test. Added new sample statistics.
- Added
scipy.stats.contingency.odds_ratioto compute both the conditional and unconditional odds ratios and corresponding confidence intervals for 2x2 contingency tables. - Added
scipy.stats.directional_statsto compute sample statistics of n-dimensional directional data. - Added
scipy.stats.expectile, which generalizes the expected value in the same way as quantiles are a generalization of the median.
- Added
Added new statistical distributions.
- Added
scipy.stats.uniform_direction, a multivariate distribution to sample uniformly from the surface of a hypersphere. - Added
scipy.stats.random_table, a multivariate distribution to sample uniformly from m x n contingency tables with provided marginals. - Added
scipy.stats.truncpareto, the truncated Pareto distribution.
- Added
Improved the
fitmethod of several distributions.scipy.stats.skewnormandscipy.stats.weibull_minnow use an analytical solution whenmethod='mm', which also serves a starting guess to improve the performance ofmethod='mle'.scipy.stats.gumbel_randscipy.stats.gumbel_l: analytical maximum likelihood estimates have been extended to the cases in which location or scale are fixed by the user.- Analytical maximum likelihood estimates have been added for
scipy.stats.powerlaw.
Improved random variate sampling of several distributions.
- Drawing multiple samples from
scipy.stats.matrix_normal,scipy.stats.ortho_group,scipy.stats.special_ortho_group, andscipy.stats.unitary_groupis faster. - The
rvsmethod ofscipy.stats.vonmisesnow wraps to the interval[-np.pi, np.pi]. - Improved the reliability of
scipy.stats.loggammarvsmethod for small values of the shape parameter.
- Drawing multiple samples from
Improved the speed and/or accuracy of functions of several statistical distributions.
- Added
scipy.stats.Covariancefor better speed, accuracy, and user control in multivariate normal calculations. scipy.stats.skewnormmethodscdf,sf,ppf, andisfmethods now use the implementations from Boost, improving speed while maintaining accuracy. The calculation of higher-order moments is also faster and more accurate.scipy.stats.invgaussmethodsppfandisfmethods now use the implementations from Boost, improving speed and accuracy.scipy.stats.invweibullmethodssfandisfare more accurate for small probability masses.scipy.stats.nctandscipy.stats.ncx2now rely on the implementations from Boost, improving speed and accuracy.- Implemented the
logpdfmethod ofscipy.stats.vonmisesfor reliability in extreme tails. - Implemented the
isfmethod ofscipy.stats.levyfor speed and accuracy. - Improved the robustness of
scipy.stats.studentized_rangefor largedfby adding an infinite degree-of-freedom approximation. - Added a parameter
lower_limittoscipy.stats.multivariate_normal, allowing the user to change the integration limit from -inf to a desired value. - Improved the robustness of
entropyofscipy.stats.vonmisesfor large concentration values.
- Added
Enhanced
scipy.stats.gaussian_kde.- Added
scipy.stats.gaussian_kde.marginal, which returns the desired marginal distribution of the original kernel density estimate distribution. - The
cdfmethod ofscipy.stats.gaussian_kdenow accepts alower_limitparameter for integrating the PDF over a rectangular region. - Moved calculations for
scipy.stats.gaussian_kde.logpdfto Cython, improving speed. - The global interpreter lock is released by the
pdfmethod ofscipy.stats.gaussian_kdefor improved multithreading performance. - Replaced explicit matrix inversion with Cholesky decomposition for speed and accuracy.
- Added
Enhanced the result objects returned by many
scipy.statsfunctions- Added a
confidence_intervalmethod to the result object returned byscipy.stats.ttest_1sampandscipy.stats.ttest_rel. - The
scipy.statsfunctionscombine_pvalues,fisher_exact,chi2_contingency,median_testandmoodnow return bunch objects rather than plain tuples, allowing attributes to be accessed by name. - Attributes of the result objects returned by
multiscale_graphcorr,anderson_ksamp,binomtest,crosstab,pointbiserialr,spearmanr,kendalltau, andweightedtauhave been renamed tostatisticandpvaluefor consistency throughoutscipy.stats. Old attribute names are still allowed for backward compatibility. scipy.stats.andersonnow returns the parameters of the fitted distribution in ascipy.stats._result_classes.FitResultobject.- The
plotmethod ofscipy.stats._result_classes.FitResultnow accepts aplot_typeparameter; the options are'hist'(histogram, default),'qq'(Q-Q plot),'pp'(P-P plot), and'cdf'(empirical CDF plot). - Kolmogorov-Smirnov tests (e.g.
scipy.stats.kstest) now return the location (argmax) at which the statistic is calculated and the variant of the statistic used.
- Added a
Improved the performance of several
scipy.statsfunctions.- Improved the performance of
scipy.stats.cramervonmises_2sampandscipy.stats.ks_2sampwithmethod='exact'. - Improved the performance of
scipy.stats.siegelslopes. - Improved the performance of
scipy.stats.mstats.hdquantile_sd. - Improved the performance of
scipy.stats.binned_statistic_ddfor several NumPy statistics, and binned statistics methods now support complex data.
- Improved the performance of
Added the
scrambleoptional argument toscipy.stats.qmc.LatinHypercube. It replacescentered, which is now deprecated.Added a parameter
optimizationto allscipy.stats.qmc.QMCEnginesubclasses to improve characteristics of the quasi-random variates.Added tie correction to
scipy.stats.mood.Added tutorials for resampling methods in
scipy.stats.scipy.stats.bootstrap,scipy.stats.permutation_test, andscipy.stats.monte_carlo_testnow automatically detect whether the providedstatisticis vectorized, so passing thevectorizedargument explicitly is no longer required to take advantage of vectorized statistics.Improved the speed of
scipy.stats.permutation_testfor permutation types'samples'and'pairings'.Added
axis,nan_policy, and masked array support toscipy.stats.jarque_bera.Added the
nan_policyoptional argument toscipy.stats.rankdata.
Deprecated features
scipy.miscmodule and all the methods inmiscare deprecated in v1.10 and will be completely removed in SciPy v2.0.0. Users are suggested to utilize thescipy.datasetsmodule instead for the dataset methods.scipy.stats.qmc.LatinHypercubeparametercenteredhas been deprecated. It is replaced by thescrambleargument for more consistency with other QMC engines.scipy.interpolate.interp2dclass has been deprecated. The docstring of the deprecated routine lists recommended replacements.
Expired Deprecations
- There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
- Removed
cond&rcondkwargs inlinalg.pinv - Removed wrappers
scipy.linalg.blas.{clapack, flapack} - Removed
scipy.stats.NumericalInverseHermiteand removedtol&max_intervalskwargs fromscipy.stats.sampling.NumericalInverseHermite - Removed
local_search_optionskwarg frromscipy.optimize.dual_annealing.
- Removed
Other changes
scipy.stats.bootstrap,scipy.stats.permutation_test, andscipy.stats.monte_carlo_testnow automatically detect whether the providedstatisticis vectorized by looking for anaxisparameter in the signature ofstatistic. If anaxisparameter is present instatisticbut should not be relied on for vectorized calls, users must pass optionvectorized==Falseexplicitly.scipy.stats.multivariate_normalwill now raise aValueErrorwhen the covariance matrix is not positive semidefinite, regardless of which method is called.
Authors
- Name (commits)
- h-vetinari (10)
- Jelle Aalbers (1)
- Oriol Abril-Pla (1) +
- Alan-Hung (1) +
- Tania Allard (7)
- Oren Amsalem (1) +
- Sven Baars (10)
- Balthasar (1) +
- Ross Barnowski (1)
- Christoph Baumgarten (2)
- Peter Bell (2)
- Sebastian Berg (1)
- Aaron Berk (1) +
- boatwrong (1) +
- boeleman (1) +
- Jake Bowhay (50)
- Matthew Brett (4)
- Evgeni Burovski (93)
- Matthias Bussonnier (6)
- Dominic C (2)
- Mingbo Cai (1) +
- James Campbell (2) +
- CJ Carey (4)
- cesaregarza (1) +
- charlie0389 (1) +
- Hood Chatham (5)
- Andrew Chin (1) +
- Daniel Ching (1) +
- Leo Chow (1) +
- chris (3) +
- John Clow (1) +
- cm7S (1) +
- cmgodwin (1) +
- Christopher Cowden (2) +
- Henry Cuzco (2) +
- Anirudh Dagar (12)
- Hans Dembinski (2) +
- Jaiden di Lanzo (24) +
- Felipe Dias (1) +
- Dieter Werthmüller (1)
- Giuseppe Dilillo (1) +
- dpoerio (1) +
- drpeteb (1) +
- Christopher Dupuis (1) +
- Jordan Edmunds (1) +
- Pieter Eendebak (1) +
- Jérome Eertmans (1) +
- Fabian Egli (2) +
- Sebastian Ehlert (2) +
- Kian Eliasi (1) +
- Tomohiro Endo (1) +
- Stefan Endres (1)
- Zeb Engberg (4) +
- Jonas Eschle (1) +
- Thomas J. Fan (9)
- fiveseven (1) +
- Neil Flood (1) +
- Franz Forstmayr (1)
- Sara Fridovich-Keil (1)
- David Gilbertson (1) +
- Ralf Gommers (251)
- Marco Gorelli (2) +
- Matt Haberland (383)
- Andrew Hawryluk (2) +
- Christoph Hohnerlein (2) +
- Loïc Houpert (2) +
- Shamus Husheer (1) +
- ideasrule (1) +
- imoiwm (1) +
- Lakshaya Inani (1) +
- Joseph T. Iosue (1)
- iwbc-mzk (1) +
- Nathan Jacobi (3) +
- Julien Jerphanion (5)
- He Jia (1)
- jmkuebler (1) +
- Johannes Müller (1) +
- Vedant Jolly (1) +
- Juan Luis Cano Rodríguez (2)
- Justin (1) +
- jvavrek (1) +
- jyuv (2)
- Kai Mühlbauer (1) +
- Nikita Karetnikov (3) +
- Reinert Huseby Karlsen (1) +
- kaspar (2) +
- Toshiki Kataoka (1)
- Robert Kern (3)
- Joshua Klein (1) +
- Andrew Knyazev (7)
- Jozsef Kutas (16) +
- Eric Larson (4)
- Lechnio (1) +
- Antony Lee (2)
- Aditya Limaye (1) +
- Xingyu Liu (2)
- Christian Lorentzen (4)
- Loïc Estève (2)
- Thibaut Lunet (2) +
- Peter Lysakovski (1)
- marianasalamoni (2) +
- mariprudencio (1) +
- Paige Martin (1) +
- Arno Marty (1) +
- matthewborish (3) +
- Damon McDougall (1)
- Nicholas McKibben (22)
- McLP (1) +
- mdmahendri (1) +
- Melissa Weber Mendonça (9)
- Jarrod Millman (1)
- Naoto Mizuno (2)
- Shashaank N (1)
- Pablo S Naharro (1) +
- nboudrie (2) +
- Andrew Nelson (52)
- Nico Schlömer (1)
- NiMlr (1) +
- o-alexandre-felipe (1) +
- Maureen Ononiwu (1) +
- Dimitri Papadopoulos (2) +
- partev (1) +
- Tirth Patel (10)
- Paulius Šarka (1) +
- Josef Perktold (1)
- Giacomo Petrillo (3) +
- Matti Picus (1)
- Rafael Pinto (1) +
- PKNaveen (1) +
- Ilhan Polat (6)
- Akshita Prasanth (2) +
- Sean Quinn (1)
- Tyler Reddy (142)
- Martin Reinecke (1)
- Ned Richards (1)
- Marie Roald (1) +
- Sam Rosen (4) +
- Pamphile Roy (105)
- sabonerune (2) +
- Atsushi Sakai (94)
- Daniel Schmitz (27)
- Anna Scholtz (1) +
- Eli Schwartz (11)
- serge-sans-paille (2)
- JEEVANSHI SHARMA (1) +
- ehsan shirvanian (2) +
- siddhantwahal (2)
- Mathieu Dutour Sikiric (1) +
- Sourav Singh (1)
- Alexander Soare (1) +
- Bjørge Solli (2) +
- Scott Staniewicz (1)
- Albert Steppi (3)
- Thomas Stoeger (1) +
- Kai Striega (4)
- Tartopohm (1) +
- Mamoru TASAKA (2) +
- Ewout ter Hoeven (5)
- TianyiQ (1) +
- Tiger (1) +
- Will Tirone (1)
- Edgar Andrés Margffoy Tuay (1) +
- Dmitry Ulyumdzhiev (1) +
- Hari Vamsi (1) +
- VitalyChait (1) +
- Rik Voorhaar (1) +
- Samuel Wallan (4)
- Stefan van der Walt (2)
- Warren Weckesser (145)
- wei2222 (1) +
- windows-server-2003 (3) +
- Marek Wojciechowski (2) +
- Niels Wouda (1) +
- WRKampi (1) +
- Yeonjoo Yoo (1) +
- Rory Yorke (1)
- Xiao Yuan (2) +
- Meekail Zain (2) +
- Fabio Zanini (1) +
- Steffen Zeile (1) +
- Egor Zemlyanoy (19)
- Gavin Zhang (3) +
A total of 182 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.
- Python
Published by tylerjereddy over 3 years ago
scipy - SciPy 1.10.0rc1
SciPy 1.10.0 Release Notes
Note: SciPy 1.10.0 is not released yet!
SciPy 1.10.0 is the culmination of 6 months of hard work. It contains
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.10.x branch, and on adding new features on the main branch.
This release requires Python 3.8+ and NumPy 1.19.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A new dedicated datasets submodule (
scipy.datasets) has been added, and is now preferred over usage ofscipy.miscfor dataset retrieval. - A new
scipy.interpolate.make_smoothing_splinefunction was added. This function constructs a smoothing cubic spline from noisy data, using the generalized cross-validation (GCV) criterion to find the tradeoff between smoothness and proximity to data points. scipy.statshas three new distributions, two new hypothesis tests, three new sample statistics, a class for greater control over calculations involving covariance matrices, and many other enhancements.
New features
scipy.datasets introduction
- A new dedicated
datasetssubmodule has been added. The submodules is meant for datasets that are relevant to other SciPy submodules ands content (tutorials, examples, tests), as well as contain a curated set of datasets that are of wider interest. As of this release, all the datasets fromscipy.mischave been added toscipy.datasets(and deprecated inscipy.misc). - The submodule is based on Pooch (a new optional dependency for SciPy), a Python package to simplify fetching data files. This move will, in a subsequent release, facilitate SciPy to trim down the sdist/wheel sizes, by decoupling the data files and moving them out of the SciPy repository, hosting them externally and downloading them when requested. After downloading the datasets once, the files are cached to avoid network dependence and repeated usage.
- Added datasets from
scipy.misc:scipy.datasets.face,scipy.datasets.ascent,scipy.datasets.electrocardiogram Added download and caching functionality:
scipy.datasets.download_all: a function to download all thescipy.datasetsassociated files at once.scipy.datasets.clear_cache: a simple utility function to clear cached dataset files from the file system.scipy/datasets/_download_all.pycan be run as a standalone script for packaging purposes to avoid any external dependency at build or test time. This can be used by SciPy packagers (e.g., for Linux distros) which may have to adhere to rules that forbid downloading sources from external repositories at package build time.
scipy.integrate improvements
- Added
scipy.integrate.qmc_quad, which performs quadrature using Quasi-Monte Carlo points. - Added parameter
complex_functoscipy.integrate.quad, which can be setTrueto integrate a complex integrand.
scipy.interpolate improvements
scipy.interpolate.interpnnow supports tensor-product interpolation methods (slinear,cubic,quinticandpchip)- Tensor-product interpolation methods (
slinear,cubic,quinticandpchip) inscipy.interpolate.interpnandscipy.interpolate.RegularGridInterpolatornow allow values with trailing dimensions. scipy.interpolate.RegularGridInterpolatorhas a new fast path formethod="linear"with 2D data, andRegularGridInterpolatoris now easier to subclassscipy.interpolate.interp1dnow can take a single value for non-spline methods.- A new
extrapolateargument is available toscipy.interpolate.BSpline.design_matrix, allowing extrapolation based on the first and last intervals. - A new function
scipy.interpolate.make_smoothing_splinehas been added. It is an implementation of the generalized cross-validation spline smoothing algorithm. Thelam=None(default) mode of this function is a clean-room reimplementation of the classicgcvspl.fFortran algorithm for constructing GCV splines. - A new
method="pchip"mode was aded toscipy.interpolate.RegularGridInterpolator. This mode constructs an interpolator using tensor products of C1-continuous monotone splines (essentially, ascipy.interpolate.PchipInterpolatorinstance per dimension).
scipy.sparse.linalg improvements
- The spectral 2-norm is now available in
scipy.sparse.linalg.norm. - The performance of
scipy.sparse.linalg.normfor the default case (Frobenius norm) has been improved. - LAPACK wrappers were added for
trexcandtrsen. The
scipy.sparse.linalg.lobpcgalgorithm was rewritten, yielding the following improvements:- a simple tunable restart potentially increases the attainable accuracy for edge cases,
- internal postprocessing runs one final exact Rayleigh-Ritz method giving more accurate and orthonormal eigenvectors,
- output the computed iterate with the smallest max norm of the residual and drop the history of subsequent iterations,
- remove the check for
LinearOperatorformat input and thus allow a simple function handle of a callable object as an input, - better handling of common user errors with input data, rather than letting the algorithm fail.
scipy.linalg improvements
scipy.linalg.lu_factornow accepts rectangular arrays instead of being restricted to square arrays.
scipy.ndimage improvements
- The new
scipy.ndimage.value_indicesfunction provides a time-efficient method to search for the locations of individual values with an array of image data. - A new
radiusargument is supported byscipy.ndimage.gaussian_filter1dandscipy.ndimage.gaussian_filterfor adjusting the kernel size of the filter.
scipy.optimize improvements
scipy.optimize.brutenow coerces non-iterable/single-valueargsinto a tuple.scipy.optimize.least_squaresandscipy.optimize.curve_fitnow acceptscipy.optimize.Boundsfor bounds constraints.- Added a tutorial for
scipy.optimize.milp. - Improved the pretty-printing of
scipy.optimize.OptimizeResultobjects. - Additional options (
parallel,threads,mip_rel_gap) can now be passed toscipy.optimize.linprogwithmethod='highs'.
scipy.signal improvements
- The new window function
scipy.signal.windows.lanczoswas added to compute a Lanczos window, also known as a sinc window.
scipy.sparse.csgraph improvements
- the performance of
scipy.sparse.csgraph.dijkstrahas been improved, and star graphs in particular see a marked performance improvement
scipy.special improvements
- The new function
scipy.special.powm1, a ufunc with signaturepowm1(x, y), computesx**y - 1. The function avoids the loss of precision that can result whenyis close to 0 or whenxis close to 1. scipy.special.erfinvis now more accurate as it leverages the Boost equivalent under the hood.
scipy.stats improvements
- Added
scipy.stats.goodness_of_fit, a generalized goodness-of-fit test for use with any univariate distribution, any combination of known and unknown parameters, and several choices of test statistic (Kolmogorov-Smirnov, Cramer-von Mises, and Anderson-Darling). - Improved
scipy.stats.bootstrap: Default method'BCa'now supports multi-sample statistics. Also, the bootstrap distribution is returned in the result object, and the result object can be passed into the function as parameterbootstrap_resultto add additional resamples or change the confidence interval level and type. - Added maximum spacing estimation to
scipy.stats.fit. - Added the Poisson means test ("E-test") as
scipy.stats.poisson_means_test. Added new sample statistics.
- Added
scipy.stats.contingency.odds_ratioto compute both the conditional and unconditional odds ratios and corresponding confidence intervals for 2x2 contingency tables. - Added
scipy.stats.directional_statsto compute sample statistics of n-dimensional directional data. - Added
scipy.stats.expectile, which generalizes the expected value in the same way as quantiles are a generalization of the median.
- Added
Added new statistical distributions.
- Added
scipy.stats.uniform_direction, a multivariate distribution to sample uniformly from the surface of a hypersphere. - Added
scipy.stats.random_table, a multivariate distribution to sample uniformly from m x n contingency tables with provided marginals. - Added
scipy.stats.truncpareto, the truncated Pareto distribution.
- Added
Improved the
fitmethod of several distributions.scipy.stats.skewnormandscipy.stats.weibull_minnow use an analytical solution whenmethod='mm', which also serves a starting guess to improve the performance ofmethod='mle'.scipy.stats.gumbel_randscipy.stats.gumbel_l: analytical maximum likelihood estimates have been extended to the cases in which location or scale are fixed by the user.- Analytical maximum likelihood estimates have been added for
scipy.stats.powerlaw.
Improved random variate sampling of several distributions.
- Drawing multiple samples from
scipy.stats.matrix_normal,scipy.stats.ortho_group,scipy.stats.special_ortho_group, andscipy.stats.unitary_groupis faster. - The
rvsmethod ofscipy.stats.vonmisesnow wraps to the interval[-np.pi, np.pi]. - Improved the reliability of
scipy.stats.loggammarvsmethod for small values of the shape parameter.
- Drawing multiple samples from
Improved the speed and/or accuracy of functions of several statistical distributions.
- Added
scipy.stats.Covariancefor better speed, accuracy, and user control in multivariate normal calculations. scipy.stats.skewnormmethodscdf,sf,ppf, andisfmethods now use the implementations from Boost, improving speed while maintaining accuracy. The calculation of higher-order moments is also faster and more accurate.scipy.stats.invgaussmethodsppfandisfmethods now use the implementations from Boost, improving speed and accuracy.scipy.stats.invweibullmethodssfandisfare more accurate for small probability masses.scipy.stats.nctandscipy.stats.ncx2now rely on the implementations from Boost, improving speed and accuracy.- Implemented the
logpdfmethod ofscipy.stats.vonmisesfor reliability in extreme tails. - Implemented the
isfmethod ofscipy.stats.levyfor speed and accuracy. - Improved the robustness of
scipy.stats.studentized_rangefor largedfby adding an infinite degree-of-freedom approximation. - Added a parameter
lower_limittoscipy.stats.multivariate_normal, allowing the user to change the integration limit from -inf to a desired value. - Improved the robustness of
entropyofscipy.stats.vonmisesfor large concentration values.
- Added
Enhanced
scipy.stats.gaussian_kde.- Added
scipy.stats.gaussian_kde.marginal, which returns the desired marginal distribution of the original kernel density estimate distribution. - The
cdfmethod ofscipy.stats.gaussian_kdenow accepts alower_limitparameter for integrating the PDF over a rectangular region. - Moved calculations for
scipy.stats.gaussian_kde.logpdfto Cython, improving speed. - The global interpreter lock is released by the
pdfmethod ofscipy.stats.gaussian_kdefor improved multithreading performance. - Replaced explicit matrix inversion with Cholesky decomposition for speed and accuracy.
- Added
Enhanced the result objects returned by many
scipy.statsfunctions- Added a
confidence_intervalmethod to the result object returned byscipy.stats.ttest_1sampandscipy.stats.ttest_rel. - The
scipy.statsfunctionscombine_pvalues,fisher_exact,chi2_contingency,median_testandmoodnow return bunch objects rather than plain tuples, allowing attributes to be accessed by name. - Attributes of the result objects returned by
multiscale_graphcorr,anderson_ksamp,binomtest,crosstab,pointbiserialr,spearmanr,kendalltau, andweightedtauhave been renamed tostatisticandpvaluefor consistency throughoutscipy.stats. Old attribute names are still allowed for backward compatibility. scipy.stats.andersonnow returns the parameters of the fitted distribution in ascipy.stats._result_classes.FitResultobject.- The
plotmethod ofscipy.stats._result_classes.FitResultnow accepts aplot_typeparameter; the options are'hist'(histogram, default),'qq'(Q-Q plot),'pp'(P-P plot), and'cdf'(empirical CDF plot). - Kolmogorov-Smirnov tests (e.g.
scipy.stats.kstest) now return the location (argmax) at which the statistic is calculated and the variant of the statistic used.
- Added a
Improved the performance of several
scipy.statsfunctions.- Improved the performance of
scipy.stats.cramervonmises_2sampandscipy.stats.ks_2sampwithmethod='exact'. - Improved the performance of
scipy.stats.siegelslopes. - Improved the performance of
scipy.stats.mstats.hdquantile_sd. - Improved the performance of
scipy.stats.binned_statistic_ddfor several NumPy statistics, and binned statistics methods now support complex data.
- Improved the performance of
Added the
scrambleoptional argument toscipy.stats.qmc.LatinHypercube. It replacescentered, which is now deprecated.Added a parameter
optimizationto allscipy.stats.qmc.QMCEnginesubclasses to improve characteristics of the quasi-random variates.Added tie correction to
scipy.stats.mood.Added tutorials for resampling methods in
scipy.stats.scipy.stats.bootstrap,scipy.stats.permutation_test, andscipy.stats.monte_carlo_testnow automatically detect whether the providedstatisticis vectorized, so passing thevectorizedargument explicitly is no longer required to take advantage of vectorized statistics.Improved the speed of
scipy.stats.permutation_testfor permutation types'samples'and'pairings'.Added
axis,nan_policy, and masked array support toscipy.stats.jarque_bera.Added the
nan_policyoptional argument toscipy.stats.rankdata.
Deprecated features
scipy.miscmodule and all the methods inmiscare deprecated in v1.10 and will be completely removed in SciPy v2.0.0. Users are suggested to utilize thescipy.datasetsmodule instead for the dataset methods.scipy.stats.qmc.LatinHypercubeparametercenteredhas been deprecated. It is replaced by thescrambleargument for more consistency with other QMC engines.scipy.interpolate.interp2dclass has been deprecated. The docstring of the deprecated routine lists recommended replacements.
Expired Deprecations
- There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
- Removed
cond&rcondkwargs inlinalg.pinv - Removed wrappers
scipy.linalg.blas.{clapack, flapack} - Removed
scipy.stats.NumericalInverseHermiteand removedtol&max_intervalskwargs fromscipy.stats.sampling.NumericalInverseHermite - Removed
local_search_optionskwarg frromscipy.optimize.dual_annealing.
- Removed
Other changes
scipy.stats.bootstrap,scipy.stats.permutation_test, andscipy.stats.monte_carlo_testnow automatically detect whether the providedstatisticis vectorized by looking for anaxisparameter in the signature ofstatistic. If anaxisparameter is present instatisticbut should not be relied on for vectorized calls, users must pass optionvectorized==Falseexplicitly.scipy.stats.multivariate_normalwill now raise aValueErrorwhen the covariance matrix is not positive semidefinite, regardless of which method is called.
Authors
- Name (commits)
- h-vetinari (10)
- Jelle Aalbers (1)
- Alan-Hung (1) +
- Tania Allard (7)
- Oren Amsalem (1) +
- Sven Baars (10)
- Balthasar (1) +
- Ross Barnowski (1)
- Christoph Baumgarten (2)
- Peter Bell (2)
- Sebastian Berg (1)
- Aaron Berk (1) +
- boatwrong (1) +
- Jake Bowhay (50)
- Matthew Brett (4)
- Evgeni Burovski (93)
- Matthias Bussonnier (6)
- Dominic C (2)
- Mingbo Cai (1) +
- James Campbell (2) +
- CJ Carey (4)
- cesaregarza (1) +
- charlie0389 (1) +
- Hood Chatham (5)
- Andrew Chin (1) +
- Daniel Ching (1) +
- Leo Chow (1) +
- chris (3) +
- John Clow (1) +
- cm7S (1) +
- cmgodwin (1) +
- Christopher Cowden (2) +
- Henry Cuzco (2) +
- Anirudh Dagar (10)
- Hans Dembinski (2) +
- Jaiden di Lanzo (24) +
- Felipe Dias (1) +
- Dieter Werthmüller (1)
- Giuseppe Dilillo (1) +
- dpoerio (1) +
- drpeteb (1) +
- Christopher Dupuis (1) +
- Jordan Edmunds (1) +
- Pieter Eendebak (1) +
- Jérome Eertmans (1) +
- Fabian Egli (2) +
- Sebastian Ehlert (2) +
- Kian Eliasi (1) +
- Tomohiro Endo (1) +
- Stefan Endres (1)
- Zeb Engberg (4) +
- Jonas Eschle (1) +
- Thomas J. Fan (9)
- fiveseven (1) +
- Neil Flood (1) +
- Franz Forstmayr (1)
- Sara Fridovich-Keil (1)
- David Gilbertson (1) +
- Ralf Gommers (251)
- Marco Gorelli (2) +
- Matt Haberland (381)
- Andrew Hawryluk (2) +
- Christoph Hohnerlein (2) +
- Loïc Houpert (2) +
- Shamus Husheer (1) +
- ideasrule (1) +
- imoiwm (1) +
- Lakshaya Inani (1) +
- Joseph T. Iosue (1)
- iwbc-mzk (1) +
- Nathan Jacobi (3) +
- Julien Jerphanion (5)
- He Jia (1)
- jmkuebler (1) +
- Johannes Müller (1) +
- Vedant Jolly (1) +
- Juan Luis Cano Rodríguez (2)
- Justin (1) +
- jvavrek (1) +
- jyuv (2)
- Kai Mühlbauer (1) +
- Nikita Karetnikov (3) +
- Reinert Huseby Karlsen (1) +
- kaspar (2) +
- Toshiki Kataoka (1)
- Robert Kern (3)
- Joshua Klein (1) +
- Andrew Knyazev (7)
- Jozsef Kutas (16) +
- Eric Larson (4)
- Lechnio (1) +
- Antony Lee (2)
- Aditya Limaye (1) +
- Xingyu Liu (2)
- Christian Lorentzen (4)
- Loïc Estève (2)
- Thibaut Lunet (2) +
- Peter Lysakovski (1)
- marianasalamoni (2) +
- mariprudencio (1) +
- Paige Martin (1) +
- Arno Marty (1) +
- matthewborish (3) +
- Damon McDougall (1)
- Nicholas McKibben (22)
- McLP (1) +
- mdmahendri (1) +
- Melissa Weber Mendonça (9)
- Jarrod Millman (1)
- Naoto Mizuno (2)
- Shashaank N (1)
- Pablo S Naharro (1) +
- nboudrie (1) +
- Andrew Nelson (52)
- Nico Schlömer (1)
- NiMlr (1) +
- o-alexandre-felipe (1) +
- Maureen Ononiwu (1) +
- Dimitri Papadopoulos (2) +
- partev (1) +
- Tirth Patel (10)
- Paulius Šarka (1) +
- Josef Perktold (1)
- Giacomo Petrillo (3) +
- Matti Picus (1)
- Rafael Pinto (1) +
- PKNaveen (1) +
- Ilhan Polat (6)
- Akshita Prasanth (2) +
- Sean Quinn (1)
- Tyler Reddy (117)
- Martin Reinecke (1)
- Ned Richards (1)
- Marie Roald (1) +
- Sam Rosen (4) +
- Pamphile Roy (103)
- sabonerune (2) +
- Atsushi Sakai (94)
- Daniel Schmitz (27)
- Anna Scholtz (1) +
- Eli Schwartz (11)
- serge-sans-paille (2)
- JEEVANSHI SHARMA (1) +
- ehsan shirvanian (2) +
- siddhantwahal (2)
- Mathieu Dutour Sikiric (1) +
- Sourav Singh (1)
- Alexander Soare (1) +
- Bjørge Solli (2) +
- Scott Staniewicz (1)
- Albert Steppi (3)
- Thomas Stoeger (1) +
- Kai Striega (4)
- Tartopohm (1) +
- Mamoru TASAKA (2) +
- Ewout ter Hoeven (5)
- TianyiQ (1) +
- Tiger (1) +
- Will Tirone (1)
- Edgar Andrés Margffoy Tuay (1) +
- Dmitry Ulyumdzhiev (1) +
- Hari Vamsi (1) +
- VitalyChait (1) +
- Rik Voorhaar (1) +
- Samuel Wallan (4)
- Stefan van der Walt (2)
- Warren Weckesser (145)
- wei2222 (1) +
- windows-server-2003 (3) +
- Marek Wojciechowski (2) +
- Niels Wouda (1) +
- WRKampi (1) +
- Yeonjoo Yoo (1) +
- Rory Yorke (1)
- Xiao Yuan (2) +
- Meekail Zain (2) +
- Fabio Zanini (1) +
- Steffen Zeile (1) +
- Egor Zemlyanoy (19)
- Gavin Zhang (3) +
A total of 180 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.
- Python
Published by tylerjereddy over 3 years ago
scipy - SciPy 1.9.3
SciPy 1.9.3 Release Notes
SciPy 1.9.3 is a bug-fix release with no new features
compared to 1.9.2.
Authors
- Jelle Aalbers (1)
- Peter Bell (1)
- Jake Bowhay (3)
- Matthew Brett (3)
- Evgeni Burovski (5)
- drpeteb (1) +
- Sebastian Ehlert (1) +
- GavinZhang (1) +
- Ralf Gommers (2)
- Matt Haberland (15)
- Lakshaya Inani (1) +
- Joseph T. Iosue (1)
- Nathan Jacobi (1) +
- jmkuebler (1) +
- Nikita Karetnikov (1) +
- Lechnio (1) +
- Nicholas McKibben (1)
- Andrew Nelson (1)
- o-alexandre-felipe (1) +
- Tirth Patel (1)
- Tyler Reddy (51)
- Martin Reinecke (1)
- Marie Roald (1) +
- Pamphile Roy (2)
- Eli Schwartz (1)
- serge-sans-paille (1)
- ehsan shirvanian (1) +
- Mamoru TASAKA (1) +
- Samuel Wallan (1)
- Warren Weckesser (7)
- Gavin Zhang (1) +
A total of 31 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.
- Python
Published by tylerjereddy over 3 years ago
scipy - SciPy 1.9.2
SciPy 1.9.2 Release Notes
SciPy 1.9.2 is a bug-fix release with no new features
compared to 1.9.1. It also provides wheels for Python 3.11
on several platforms.
Authors
- Hood Chatham (1)
- Thomas J. Fan (1)
- Ralf Gommers (22)
- Matt Haberland (5)
- Julien Jerphanion (1)
- Loïc Estève (1)
- Nicholas McKibben (2)
- Naoto Mizuno (1)
- Andrew Nelson (3)
- Tyler Reddy (28)
- Pamphile Roy (1)
- Ewout ter Hoeven (2)
- Warren Weckesser (1)
- Meekail Zain (1) +
A total of 14 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.
- Python
Published by tylerjereddy over 3 years ago
scipy - SciPy 1.9.1
SciPy 1.9.1 Release Notes
SciPy 1.9.1 is a bug-fix release with no new features
compared to 1.9.0. Notably, some important meson build
fixes are included.
Authors
- Anirudh Dagar (1)
- Ralf Gommers (12)
- Matt Haberland (2)
- Andrew Nelson (1)
- Tyler Reddy (14)
- Atsushi Sakai (1)
- Eli Schwartz (1)
- Warren Weckesser (2)
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.
- Python
Published by tylerjereddy almost 4 years ago
scipy - SciPy 1.9.0
SciPy 1.9.0 Release Notes
SciPy 1.9.0 is the culmination of 6 months of hard work. It contains
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.9.x branch, and on adding new features on the main branch.
This release requires Python 3.8-3.11 and NumPy 1.18.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- We have modernized our build system to use
meson, substantially improving our build performance, and providing better build-time configuration and cross-compilation support, - Added
scipy.optimize.milp, new function for mixed-integer linear programming, - Added
scipy.stats.fitfor fitting discrete and continuous distributions to data, - Tensor-product spline interpolation modes were added to
scipy.interpolate.RegularGridInterpolator, - A new global optimizer (DIviding RECTangles algorithm)
scipy.optimize.direct.
New features
scipy.interpolate improvements
- Speed up the
RBFInterpolatorevaluation with high dimensional interpolants. - Added new spline based interpolation methods for
scipy.interpolate.RegularGridInterpolatorand its tutorial. scipy.interpolate.RegularGridInterpolatorandscipy.interpolate.interpnnow accept descending ordered points.RegularGridInterpolatornow handles length-1 grid axes.- The
BivariateSplinesubclasses have a new methodpartial_derivativewhich constructs a new spline object representing a derivative of an original spline. This mirrors the corresponding functionality for univariate splines,splderandBSpline.derivative, and can substantially speed up repeated evaluation of derivatives.
scipy.linalg improvements
scipy.linalg.expmnow accepts nD arrays. Its speed is also improved.- Minimum required LAPACK version is bumped to
3.7.1.
scipy.fft improvements
- Added
uarraymultimethods forscipy.fft.fhtandscipy.fft.ifhtto allow provision of third party backend implementations such as those recently added to CuPy.
scipy.optimize improvements
A new global optimizer,
scipy.optimize.direct(DIviding RECTangles algorithm) was added. For problems with inexpensive function evaluations, like the ones in the SciPy benchmark suite,directis competitive with the best other solvers in SciPy (dual_annealinganddifferential_evolution) in terms of execution time. Seegh-14300 <https://github.com/scipy/scipy/pull/14300>__ for more details.Add a
full_outputparameter toscipy.optimize.curve_fitto output additional solution information.Add a
integralityparameter toscipy.optimize.differential_evolution, enabling integer constraints on parameters.Add a
vectorizedparameter to call a vectorized objective function only once per iteration. This can improve minimization speed by reducing interpreter overhead from the multiple objective function calls.The default method of
scipy.optimize.linprogis now'highs'.Added
scipy.optimize.milp, new function for mixed-integer linear programming.Added Newton-TFQMR method to
newton_krylov.Added support for the
Boundsclass inshgoanddual_annealingfor a more uniform API acrossscipy.optimize.Added the
vectorizedkeyword todifferential_evolution.approx_fprimenow works with vector-valued functions.
scipy.signal improvements
- The new window function
scipy.signal.windows.kaiser_bessel_derivedwas added to compute the Kaiser-Bessel derived window. - Single-precision
hilbertoperations are now faster as a result of more consistentdtypehandling.
scipy.sparse improvements
- Add a
copyparameter toscipy.sparce.csgraph.laplacian. Using inplace computation withcopy=Falsereduces the memory footprint. - Add a
dtypeparameter toscipy.sparce.csgraph.laplacianfor type casting. - Add a
symmetrizedparameter toscipy.sparce.csgraph.laplacianto produce symmetric Laplacian for directed graphs. - Add a
formparameter toscipy.sparce.csgraph.laplaciantaking one of the three values:array, orfunction, orlodetermining the format of the output Laplacian:arrayis a numpy array (backward compatible default);functionis a pointer to a lambda-function evaluating the Laplacian-vector or Laplacian-matrix product;loresults in the format of theLinearOperator.
scipy.sparse.linalg improvements
lobpcgperformance improvements for small input cases.
scipy.spatial improvements
- Add an
orderparameter toscipy.spatial.transform.Rotation.from_quatandscipy.spatial.transform.Rotation.as_quatto specify quaternion format.
scipy.stats improvements
scipy.stats.monte_carlo_testperforms one-sample Monte Carlo hypothesis tests to assess whether a sample was drawn from a given distribution. Besides reproducing the results of hypothesis tests likescipy.stats.ks_1samp,scipy.stats.normaltest, andscipy.stats.cramervonmiseswithout small sample size limitations, it makes it possible to perform similar tests using arbitrary statistics and distributions.Several
scipy.statsfunctions support newaxis(integer or tuple of integers) andnan_policy('raise', 'omit', or 'propagate'), andkeepdimsarguments. These functions also support masked arrays as inputs, even if they do not have ascipy.stats.mstatscounterpart. Edge cases for multidimensional arrays, such as when axis-slices have no unmasked elements or entire inputs are of size zero, are handled consistently.Add a
weightparameter toscipy.stats.hmean.Several improvements have been made to
scipy.stats.levy_stable. Substantial improvement has been made for numerical evaluation of the pdf and cdf, resolving #12658 and #14944. The improvement is particularly dramatic for stability parameteralphaclose to or equal to 1 and foralphabelow but approaching its maximum value of 2. The alternative fast Fourier transform based method for pdf calculation has also been updated to use the approach of Wang and Zhang from their 2008 conference paper Simpson’s rule based FFT method to compute densities of stable distribution, making this method more competitive with the default method. In addition, users now have the option to change the parametrization of the Levy Stable distribution to Nolan's "S0" parametrization which is used internally by SciPy's pdf and cdf implementations. The "S0" parametrization is described in Nolan's paper Numerical calculation of stable densities and distribution functions upon which SciPy's implementation is based. "S0" has the advantage thatdeltaandgammaare proper location and scale parameters. Withdeltaandgammafixed, the location and scale of the resulting distribution remain unchanged asalphaandbetachange. This is not the case for the default "S1" parametrization. Finally, more options have been exposed to allow users to trade off between runtime and accuracy for both the default and FFT methods of pdf and cdf calculation. More information can be found in the documentation here (to be linked).Added
scipy.stats.fitfor fitting discrete and continuous distributions to data.The methods
"pearson"and"tippet"fromscipy.stats.combine_pvalueshave been fixed to return the correct p-values, resolving #15373. In addition, the documentation forscipy.stats.combine_pvalueshas been expanded and improved.Unlike other reduction functions,
stats.modedidn't consume the axis being operated on and failed for negative axis inputs. Both the bugs have been fixed. Note thatstats.modewill now consume the input axis and return an ndarray with theaxisdimension removed.Replaced implementation of
scipy.stats.ncfwith the implementation from Boost for improved reliability.Add a
bitsparameter toscipy.stats.qmc.Sobol. It allows to use from 0 to 64 bits to compute the sequence. Default isNonewhich corresponds to 30 for backward compatibility. Using a higher value allow to sample more points. Note:bitsdoes not affect the output dtype.Add a
integersmethod toscipy.stats.qmc.QMCEngine. It allows sampling integers using any QMC sampler.Improved the fit speed and accuracy of
stats.pareto.Added
qrvsmethod toNumericalInversePolynomialto match the situation forNumericalInverseHermite.Faster random variate generation for
gennormandnakagami.lloyd_centroidal_voronoi_tessellationhas been added to allow improved sample distributions via iterative application of Voronoi diagrams and centering operationsAdd
scipy.stats.qmc.PoissonDiskto sample using the Poisson disk sampling method. It guarantees that samples are separated from each other by a givenradius.Add
scipy.stats.pmeanto calculate the weighted power mean also called generalized mean.
Deprecated features
- Due to collision with the shape parameter
nof several distributions, use of the distributionmomentmethod with keyword argumentnis deprecated. Keywordnis replaced with keywordorder. - Similarly, use of the distribution
intervalmethod with keyword argumentsalphais deprecated. Keywordalphais replaced with keywordconfidence. - The
'simplex','revised simplex', and'interior-point'methods ofscipy.optimize.linprogare deprecated. Methodshighs,highs-ds, orhighs-ipmshould be used in new code. - Support for non-numeric arrays has been deprecated from
stats.mode.pandas.DataFrame.modecan be used instead. - The function
spatial.distance.kulsinskihas been deprecated in favor ofspatial.distance.kulczynski1. - The
maxiterkeyword of the truncated Newton (TNC) algorithm has been deprecated in favour ofmaxfun. - The
verticeskeyword ofDelauney.qhullnow raises a DeprecationWarning, after having been deprecated in documentation only for a long time. - The
extradockeyword ofrv_continuous,rv_discreteandrv_samplenow raises a DeprecationWarning, after having been deprecated in documentation only for a long time.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- Object arrays in sparse matrices now raise an error.
- Inexact indices into sparse matrices now raise an error.
- Passing
radius=Nonetoscipy.spatial.SphericalVoronoinow raises an error (not addingradiusdefaults to 1, as before). - Several BSpline methods now raise an error if inputs have
ndim > 1. - The
_rvsmethod of statistical distributions now requires asizeparameter. - Passing a
fillvaluethat cannot be cast to the output type inscipy.signal.convolve2dnow raises an error. scipy.spatial.distancenow enforces that the input vectors are one-dimensional.- Removed
stats.itemfreq. - Removed
stats.median_absolute_deviation. - Removed
n_jobskeyword argument and use ofk=Nonefromkdtree.query. - Removed
rightkeyword frominterpolate.PPoly.extend. - Removed
debugkeyword fromscipy.linalg.solve_*. - Removed class
_ppformscipy.interpolate. - Removed BSR methods
matvecandmatmat. - Removed
mlabtruncation mode fromcluster.dendrogram. - Removed
cluster.vq.py_vq2. - Removed keyword arguments
ftolandxtolfromoptimize.minimize(method='Nelder-Mead'). - Removed
signal.windows.hanning. - Removed LAPACK
gegvfunctions fromlinalg; this raises the minimally required LAPACK version to 3.7.1. - Removed
spatial.distance.matching. - Removed the alias
scipy.randomfornumpy.random. - Removed docstring related functions from
scipy.misc(docformat,inherit_docstring_from,extend_notes_in_docstring,replace_notes_in_docstring,indentcount_lines,filldoc,unindent_dict,unindent_string). - Removed
linalg.pinv2.
Backwards incompatible changes
- Several
scipy.statsfunctions now convertnp.matrixtonp.ndarrays before the calculation is performed. In this case, the output will be a scalar ornp.ndarrayof appropriate shape rather than a 2Dnp.matrix. Similarly, while masked elements of masked arrays are still ignored, the output will be a scalar ornp.ndarrayrather than a masked array withmask=False. - The default method of
scipy.optimize.linprogis now'highs', not'interior-point'(which is now deprecated), so callback functions and some options are no longer supported with the default method. With the default method, thexattribute of the returnedOptimizeResultis nowNone(instead of a non-optimal array) when an optimal solution cannot be found (e.g. infeasible problem). - For
scipy.stats.combine_pvalues, the sign of the test statistic returned for the method"pearson"has been flipped so that higher values of the statistic now correspond to lower p-values, making the statistic more consistent with those of the other methods and with the majority of the literature. scipy.linalg.expmdue to historical reasons was using the sparse implementation and thus was accepting sparse arrays. Now it only works with nDarrays. For sparse usage,scipy.sparse.linalg.expmneeds to be used explicitly.- The definition of
scipy.stats.circvarhas reverted to the one that is standard in the literature; note that this is not the same as the square ofscipy.stats.circstd. - Remove inheritance to
QMCEngineinMultinomialQMCandMultivariateNormalQMC. It removes the methodsfast_forwardandreset. - Init of
MultinomialQMCnow require the number of trials withn_trials. Hence,MultinomialQMC.randomoutput has now the correct shape(n, pvals). - Several function-specific warnings (
F_onewayConstantInputWarning,F_onewayBadInputSizesWarning,PearsonRConstantInputWarning,PearsonRNearConstantInputWarning,SpearmanRConstantInputWarning, andBootstrapDegenerateDistributionWarning) have been replaced with more general warnings.
Other changes
A draft developer CLI is available for SciPy, leveraging the
doit,clickandrich-clicktools. For more details, see gh-15959.The SciPy contributor guide has been reorganized and updated (see #15947 for details).
QUADPACK Fortran routines in
scipy.integrate, which powerscipy.integrate.quad, have been marked asrecursive. This should fix rare issues in multivariate integration (nquadand friends) and obviate the need for compiler-specific compile flags (/recursivefor ifort etc). Please file an issue if this change turns out problematic for you. This is also true forFITPACKroutines inscipy.interpolate, which powersplrep,splevetc., and*UnivariateSplineand*BivariateSplineclasses.the
USE_PROPACKenvironment variable has been renamed toSCIPY_USE_PROPACK; setting to a non-zero value will enable the usage of thePROPACKlibrary as beforeBuilding SciPy on windows with MSVC now requires at least the vc142 toolset (available in Visual Studio 2019 and higher).
Lazy access to subpackages
Before this release, all subpackages of SciPy (cluster, fft, ndimage,
etc.) had to be explicitly imported. Now, these subpackages are lazily loaded
as soon as they are accessed, so that the following is possible (if desired
for interactive use, it's not actually recommended for code,
see :ref:scipy-api):
import scipy as sp; sp.fft.dct([1, 2, 3]). Advantages include: making it
easier to navigate SciPy in interactive terminals, reducing subpackage import
conflicts (which before required
import networkx.linalg as nla; import scipy.linalg as sla),
and avoiding repeatedly having to update imports during teaching &
experimentation. Also see
the related community specification document.
SciPy switched to Meson as its build system
This is the first release that ships with Meson as
the build system. When installing with pip or pypa/build, Meson will be
used (invoked via the meson-python build hook). This change brings
significant benefits - most importantly much faster build times, but also
better support for cross-compilation and cleaner build logs.
Note:
This release still ships with support for numpy.distutils-based builds
as well. Those can be invoked through the setup.py command-line
interface (e.g., python setup.py install). It is planned to remove
numpy.distutils support before the 1.10.0 release.
When building from source, a number of things have changed compared to building
with numpy.distutils:
- New build dependencies:
meson,ninja, andpkg-config.setuptoolsandwheelare no longer needed. - BLAS and LAPACK libraries that are supported haven't changed, however the
discovery mechanism has: that is now using
pkg-configinstead of hardcoded paths or asite.cfgfile. - The build defaults to using OpenBLAS. See :ref:
blas-lapack-selectionfor details.
The two CLIs that can be used to build wheels are pip and build. In
addition, the SciPy repo contains a python dev.py CLI for any kind of
development task (see its --help for details). For a comparison between old
(distutils) and new (meson) build commands, see :ref:meson-faq.
For more information on the introduction of Meson support in SciPy, see
gh-13615 <https://github.com/scipy/scipy/issues/13615>__ and
this blog post <https://labs.quansight.org/blog/2021/07/moving-scipy-to-meson/>__.
Authors
- endolith (12)
- h-vetinari (11)
- Caio Agiani (2) +
- Emmy Albert (1) +
- Joseph Albert (1)
- Tania Allard (3)
- Carsten Allefeld (1) +
- Kartik Anand (1) +
- Virgile Andreani (2) +
- Weh Andreas (1) +
- Francesco Andreuzzi (5) +
- Kian-Meng Ang (2) +
- Gerrit Ansmann (1)
- Ar-Kareem (1) +
- Shehan Atukorala (1) +
- avishai231 (1) +
- Blair Azzopardi (1)
- Sayantika Banik (2) +
- Ross Barnowski (9)
- Christoph Baumgarten (3)
- Nickolai Belakovski (1)
- Peter Bell (9)
- Sebastian Berg (3)
- Bharath (1) +
- bobcatCA (2) +
- boussoffara (2) +
- Islem BOUZENIA (1) +
- Jake Bowhay (41) +
- Matthew Brett (11)
- Dietrich Brunn (2) +
- Michael Burkhart (2) +
- Evgeni Burovski (96)
- Matthias Bussonnier (20)
- Dominic C (1)
- Cameron (1) +
- CJ Carey (3)
- Thomas A Caswell (2)
- Ali Cetin (2) +
- Hood Chatham (5) +
- Klesk Chonkin (1)
- Craig Citro (1) +
- Dan Cogswell (1) +
- Luigi Cruz (1) +
- Anirudh Dagar (5)
- Brandon David (1)
- deepakdinesh1123 (1) +
- Denton DeLoss (1) +
- derbuihan (2) +
- Sameer Deshmukh (13) +
- Niels Doucet (1) +
- DWesl (8)
- eytanadler (30) +
- Thomas J. Fan (5)
- Isuru Fernando (3)
- Joseph Fox-Rabinovitz (1)
- Ryan Gibson (4) +
- Ralf Gommers (327)
- Srinivas Gorur-Shandilya (1) +
- Alex Griffing (2)
- Matt Haberland (461)
- Tristan Hearn (1) +
- Jonathan Helgert (1) +
- Samuel Hinton (1) +
- Jake (1) +
- Stewart Jamieson (1) +
- Jan-Hendrik Müller (1)
- Yikun Jiang (1) +
- JuliaMelle01 (1) +
- jyuv (12) +
- Toshiki Kataoka (1)
- Chris Keefe (1) +
- Robert Kern (4)
- Andrew Knyazev (11)
- Matthias Koeppe (4) +
- Sergey Koposov (1)
- Volodymyr Kozachynskyi (1) +
- Yotaro Kubo (2) +
- Jacob Lapenna (1) +
- Peter Mahler Larsen (8)
- Eric Larson (4)
- Laurynas Mikšys (1) +
- Antony Lee (1)
- Gregory R. Lee (2)
- lerichi (1) +
- Tim Leslie (2)
- P. L. Lim (1)
- Smit Lunagariya (43)
- lutefiskhotdish (1) +
- Cong Ma (12)
- Syrtis Major (1)
- Nicholas McKibben (18)
- Melissa Weber Mendonça (10)
- Mark Mikofski (1)
- Jarrod Millman (13)
- Harsh Mishra (6)
- ML-Nielsen (3) +
- Matthew Murray (1) +
- Andrew Nelson (50)
- Dimitri Papadopoulos Orfanos (1) +
- Evgueni Ovtchinnikov (2) +
- Sambit Panda (1)
- Nick Papior (2)
- Tirth Patel (43)
- Petar Mlinarić (1)
- petroselo (1) +
- Ilhan Polat (64)
- Anthony Polloreno (1)
- Amit Portnoy (1) +
- Quentin Barthélemy (9)
- Patrick N. Raanes (1) +
- Tyler Reddy (185)
- Pamphile Roy (199)
- Vivek Roy (2) +
- sabonerune (1) +
- Niyas Sait (2) +
- Atsushi Sakai (25)
- Mazen Sayed (1) +
- Eduardo Schettino (5) +
- Daniel Schmitz (6) +
- Eli Schwartz (4) +
- SELEE (2) +
- Namami Shanker (4)
- siddhantwahal (1) +
- Gagandeep Singh (8)
- Soph (1) +
- Shivnaren Srinivasan (1) +
- Scott Staniewicz (1) +
- Leo C. Stein (4)
- Albert Steppi (7)
- Christopher Strickland (1) +
- Kai Striega (4)
- Søren Fuglede Jørgensen (1)
- Aleksandr Tagilov (1) +
- Masayuki Takagi (1) +
- Sai Teja (1) +
- Ewout ter Hoeven (2) +
- Will Tirone (2)
- Bas van Beek (7)
- Dhruv Vats (1)
- Arthur Volant (1)
- Samuel Wallan (5)
- Stefan van der Walt (8)
- Warren Weckesser (84)
- Anreas Weh (1)
- Nils Werner (1)
- Aviv Yaish (1) +
- Dowon Yi (1)
- Rory Yorke (1)
- Yosshi999 (1) +
- yuanx749 (2) +
- Gang Zhao (23)
- ZhihuiChen0903 (1)
- Pavel Zun (1) +
- David Zwicker (1) +
A total of 154 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.
- Python
Published by tylerjereddy almost 4 years ago
scipy - SciPy 1.9.0rc3
SciPy 1.9.0 Release Notes
Note: SciPy 1.9.0 is not released yet!
SciPy 1.9.0 is the culmination of 6 months of hard work. It contains
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.9.x branch, and on adding new features on the main branch.
This release requires Python 3.8-3.11 and NumPy 1.18.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- We have modernized our build system to use
meson, substantially improving our build performance, and providing better build-time configuration and cross-compilation support, - Added
scipy.optimize.milp, new function for mixed-integer linear programming, - Added
scipy.stats.fitfor fitting discrete and continuous distributions to data, - Tensor-product spline interpolation modes were added to
scipy.interpolate.RegularGridInterpolator, - A new global optimizer (DIviding RECTangles algorithm)
scipy.optimize.direct.
New features
scipy.interpolate improvements
- Speed up the
RBFInterpolatorevaluation with high dimensional interpolants. - Added new spline based interpolation methods for
scipy.interpolate.RegularGridInterpolatorand its tutorial. scipy.interpolate.RegularGridInterpolatorandscipy.interpolate.interpnnow accept descending ordered points.RegularGridInterpolatornow handles length-1 grid axes.- The
BivariateSplinesubclasses have a new methodpartial_derivativewhich constructs a new spline object representing a derivative of an original spline. This mirrors the corresponding functionality for univariate splines,splderandBSpline.derivative, and can substantially speed up repeated evaluation of derivatives.
scipy.linalg improvements
scipy.linalg.expmnow accepts nD arrays. Its speed is also improved.- Minimum required LAPACK version is bumped to
3.7.1.
scipy.fft improvements
- Added
uarraymultimethods forscipy.fft.fhtandscipy.fft.ifhtto allow provision of third party backend implementations such as those recently added to CuPy.
scipy.optimize improvements
A new global optimizer,
scipy.optimize.direct(DIviding RECTangles algorithm) was added. For problems with inexpensive function evaluations, like the ones in the SciPy benchmark suite,directis competitive with the best other solvers in SciPy (dual_annealinganddifferential_evolution) in terms of execution time. Seegh-14300 <https://github.com/scipy/scipy/pull/14300>__ for more details.Add a
full_outputparameter toscipy.optimize.curve_fitto output additional solution information.Add a
integralityparameter toscipy.optimize.differential_evolution, enabling integer constraints on parameters.Add a
vectorizedparameter to call a vectorized objective function only once per iteration. This can improve minimization speed by reducing interpreter overhead from the multiple objective function calls.The default method of
scipy.optimize.linprogis now'highs'.Added
scipy.optimize.milp, new function for mixed-integer linear programming.Added Newton-TFQMR method to
newton_krylov.Added support for the
Boundsclass inshgoanddual_annealingfor a more uniform API acrossscipy.optimize.Added the
vectorizedkeyword todifferential_evolution.approx_fprimenow works with vector-valued functions.
scipy.signal improvements
- The new window function
scipy.signal.windows.kaiser_bessel_derivedwas added to compute the Kaiser-Bessel derived window. - Single-precision
hilbertoperations are now faster as a result of more consistentdtypehandling.
scipy.sparse improvements
- Add a
copyparameter toscipy.sparce.csgraph.laplacian. Using inplace computation withcopy=Falsereduces the memory footprint. - Add a
dtypeparameter toscipy.sparce.csgraph.laplacianfor type casting. - Add a
symmetrizedparameter toscipy.sparce.csgraph.laplacianto produce symmetric Laplacian for directed graphs. - Add a
formparameter toscipy.sparce.csgraph.laplaciantaking one of the three values:array, orfunction, orlodetermining the format of the output Laplacian:arrayis a numpy array (backward compatible default);functionis a pointer to a lambda-function evaluating the Laplacian-vector or Laplacian-matrix product;loresults in the format of theLinearOperator.
scipy.sparse.linalg improvements
lobpcgperformance improvements for small input cases.
scipy.spatial improvements
- Add an
orderparameter toscipy.spatial.transform.Rotation.from_quatandscipy.spatial.transform.Rotation.as_quatto specify quaternion format.
scipy.stats improvements
scipy.stats.monte_carlo_testperforms one-sample Monte Carlo hypothesis tests to assess whether a sample was drawn from a given distribution. Besides reproducing the results of hypothesis tests likescipy.stats.ks_1samp,scipy.stats.normaltest, andscipy.stats.cramervonmiseswithout small sample size limitations, it makes it possible to perform similar tests using arbitrary statistics and distributions.Several
scipy.statsfunctions support newaxis(integer or tuple of integers) andnan_policy('raise', 'omit', or 'propagate'), andkeepdimsarguments. These functions also support masked arrays as inputs, even if they do not have ascipy.stats.mstatscounterpart. Edge cases for multidimensional arrays, such as when axis-slices have no unmasked elements or entire inputs are of size zero, are handled consistently.Add a
weightparameter toscipy.stats.hmean.Several improvements have been made to
scipy.stats.levy_stable. Substantial improvement has been made for numerical evaluation of the pdf and cdf, resolving #12658 and #14944. The improvement is particularly dramatic for stability parameteralphaclose to or equal to 1 and foralphabelow but approaching its maximum value of 2. The alternative fast Fourier transform based method for pdf calculation has also been updated to use the approach of Wang and Zhang from their 2008 conference paper Simpson’s rule based FFT method to compute densities of stable distribution, making this method more competitive with the default method. In addition, users now have the option to change the parametrization of the Levy Stable distribution to Nolan's "S0" parametrization which is used internally by SciPy's pdf and cdf implementations. The "S0" parametrization is described in Nolan's paper Numerical calculation of stable densities and distribution functions upon which SciPy's implementation is based. "S0" has the advantage thatdeltaandgammaare proper location and scale parameters. Withdeltaandgammafixed, the location and scale of the resulting distribution remain unchanged asalphaandbetachange. This is not the case for the default "S1" parametrization. Finally, more options have been exposed to allow users to trade off between runtime and accuracy for both the default and FFT methods of pdf and cdf calculation. More information can be found in the documentation here (to be linked).Added
scipy.stats.fitfor fitting discrete and continuous distributions to data.The methods
"pearson"and"tippet"fromscipy.stats.combine_pvalueshave been fixed to return the correct p-values, resolving #15373. In addition, the documentation forscipy.stats.combine_pvalueshas been expanded and improved.Unlike other reduction functions,
stats.modedidn't consume the axis being operated on and failed for negative axis inputs. Both the bugs have been fixed. Note thatstats.modewill now consume the input axis and return an ndarray with theaxisdimension removed.Replaced implementation of
scipy.stats.ncfwith the implementation from Boost for improved reliability.Add a
bitsparameter toscipy.stats.qmc.Sobol. It allows to use from 0 to 64 bits to compute the sequence. Default isNonewhich corresponds to 30 for backward compatibility. Using a higher value allow to sample more points. Note:bitsdoes not affect the output dtype.Add a
integersmethod toscipy.stats.qmc.QMCEngine. It allows sampling integers using any QMC sampler.Improved the fit speed and accuracy of
stats.pareto.Added
qrvsmethod toNumericalInversePolynomialto match the situation forNumericalInverseHermite.Faster random variate generation for
gennormandnakagami.lloyd_centroidal_voronoi_tessellationhas been added to allow improved sample distributions via iterative application of Voronoi diagrams and centering operationsAdd
scipy.stats.qmc.PoissonDiskto sample using the Poisson disk sampling method. It guarantees that samples are separated from each other by a givenradius.Add
scipy.stats.pmeanto calculate the weighted power mean also called generalized mean.
Deprecated features
- Due to collision with the shape parameter
nof several distributions, use of the distributionmomentmethod with keyword argumentnis deprecated. Keywordnis replaced with keywordorder. - Similarly, use of the distribution
intervalmethod with keyword argumentsalphais deprecated. Keywordalphais replaced with keywordconfidence. - The
'simplex','revised simplex', and'interior-point'methods ofscipy.optimize.linprogare deprecated. Methodshighs,highs-ds, orhighs-ipmshould be used in new code. - Support for non-numeric arrays has been deprecated from
stats.mode.pandas.DataFrame.modecan be used instead. - The function
spatial.distance.kulsinskihas been deprecated in favor ofspatial.distance.kulczynski1. - The
maxiterkeyword of the truncated Newton (TNC) algorithm has been deprecated in favour ofmaxfun. - The
verticeskeyword ofDelauney.qhullnow raises a DeprecationWarning, after having been deprecated in documentation only for a long time. - The
extradockeyword ofrv_continuous,rv_discreteandrv_samplenow raises a DeprecationWarning, after having been deprecated in documentation only for a long time.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- Object arrays in sparse matrices now raise an error.
- Inexact indices into sparse matrices now raise an error.
- Passing
radius=Nonetoscipy.spatial.SphericalVoronoinow raises an error (not addingradiusdefaults to 1, as before). - Several BSpline methods now raise an error if inputs have
ndim > 1. - The
_rvsmethod of statistical distributions now requires asizeparameter. - Passing a
fillvaluethat cannot be cast to the output type inscipy.signal.convolve2dnow raises an error. scipy.spatial.distancenow enforces that the input vectors are one-dimensional.- Removed
stats.itemfreq. - Removed
stats.median_absolute_deviation. - Removed
n_jobskeyword argument and use ofk=Nonefromkdtree.query. - Removed
rightkeyword frominterpolate.PPoly.extend. - Removed
debugkeyword fromscipy.linalg.solve_*. - Removed class
_ppformscipy.interpolate. - Removed BSR methods
matvecandmatmat. - Removed
mlabtruncation mode fromcluster.dendrogram. - Removed
cluster.vq.py_vq2. - Removed keyword arguments
ftolandxtolfromoptimize.minimize(method='Nelder-Mead'). - Removed
signal.windows.hanning. - Removed LAPACK
gegvfunctions fromlinalg; this raises the minimally required LAPACK version to 3.7.1. - Removed
spatial.distance.matching. - Removed the alias
scipy.randomfornumpy.random. - Removed docstring related functions from
scipy.misc(docformat,inherit_docstring_from,extend_notes_in_docstring,replace_notes_in_docstring,indentcount_lines,filldoc,unindent_dict,unindent_string). - Removed
linalg.pinv2.
Backwards incompatible changes
- Several
scipy.statsfunctions now convertnp.matrixtonp.ndarrays before the calculation is performed. In this case, the output will be a scalar ornp.ndarrayof appropriate shape rather than a 2Dnp.matrix. Similarly, while masked elements of masked arrays are still ignored, the output will be a scalar ornp.ndarrayrather than a masked array withmask=False. - The default method of
scipy.optimize.linprogis now'highs', not'interior-point'(which is now deprecated), so callback functions and some options are no longer supported with the default method. With the default method, thexattribute of the returnedOptimizeResultis nowNone(instead of a non-optimal array) when an optimal solution cannot be found (e.g. infeasible problem). - For
scipy.stats.combine_pvalues, the sign of the test statistic returned for the method"pearson"has been flipped so that higher values of the statistic now correspond to lower p-values, making the statistic more consistent with those of the other methods and with the majority of the literature. scipy.linalg.expmdue to historical reasons was using the sparse implementation and thus was accepting sparse arrays. Now it only works with nDarrays. For sparse usage,scipy.sparse.linalg.expmneeds to be used explicitly.- The definition of
scipy.stats.circvarhas reverted to the one that is standard in the literature; note that this is not the same as the square ofscipy.stats.circstd. - Remove inheritance to
QMCEngineinMultinomialQMCandMultivariateNormalQMC. It removes the methodsfast_forwardandreset. - Init of
MultinomialQMCnow require the number of trials withn_trials. Hence,MultinomialQMC.randomoutput has now the correct shape(n, pvals). - Several function-specific warnings (
F_onewayConstantInputWarning,F_onewayBadInputSizesWarning,PearsonRConstantInputWarning,PearsonRNearConstantInputWarning,SpearmanRConstantInputWarning, andBootstrapDegenerateDistributionWarning) have been replaced with more general warnings.
Other changes
A draft developer CLI is available for SciPy, leveraging the
doit,clickandrich-clicktools. For more details, see gh-15959.The SciPy contributor guide has been reorganized and updated (see #15947 for details).
QUADPACK Fortran routines in
scipy.integrate, which powerscipy.integrate.quad, have been marked asrecursive. This should fix rare issues in multivariate integration (nquadand friends) and obviate the need for compiler-specific compile flags (/recursivefor ifort etc). Please file an issue if this change turns out problematic for you. This is also true forFITPACKroutines inscipy.interpolate, which powersplrep,splevetc., and*UnivariateSplineand*BivariateSplineclasses.the
USE_PROPACKenvironment variable has been renamed toSCIPY_USE_PROPACK; setting to a non-zero value will enable the usage of thePROPACKlibrary as beforeBuilding SciPy on windows with MSVC now requires at least the vc142 toolset (available in Visual Studio 2019 and higher).
Lazy access to subpackages
Before this release, all subpackages of SciPy (cluster, fft, ndimage,
etc.) had to be explicitly imported. Now, these subpackages are lazily loaded
as soon as they are accessed, so that the following is possible (if desired
for interactive use, it's not actually recommended for code,
see :ref:scipy-api):
import scipy as sp; sp.fft.dct([1, 2, 3]). Advantages include: making it
easier to navigate SciPy in interactive terminals, reducing subpackage import
conflicts (which before required
import networkx.linalg as nla; import scipy.linalg as sla),
and avoiding repeatedly having to update imports during teaching &
experimentation. Also see
the related community specification document.
SciPy switched to Meson as its build system
This is the first release that ships with Meson as
the build system. When installing with pip or pypa/build, Meson will be
used (invoked via the meson-python build hook). This change brings
significant benefits - most importantly much faster build times, but also
better support for cross-compilation and cleaner build logs.
Note:
This release still ships with support for numpy.distutils-based builds
as well. Those can be invoked through the setup.py command-line
interface (e.g., python setup.py install). It is planned to remove
numpy.distutils support before the 1.10.0 release.
When building from source, a number of things have changed compared to building
with numpy.distutils:
- New build dependencies:
meson,ninja, andpkg-config.setuptoolsandwheelare no longer needed. - BLAS and LAPACK libraries that are supported haven't changed, however the
discovery mechanism has: that is now using
pkg-configinstead of hardcoded paths or asite.cfgfile. - The build defaults to using OpenBLAS. See :ref:
blas-lapack-selectionfor details.
The two CLIs that can be used to build wheels are pip and build. In
addition, the SciPy repo contains a python dev.py CLI for any kind of
development task (see its --help for details). For a comparison between old
(distutils) and new (meson) build commands, see :ref:meson-faq.
For more information on the introduction of Meson support in SciPy, see
gh-13615 <https://github.com/scipy/scipy/issues/13615>__ and
this blog post <https://labs.quansight.org/blog/2021/07/moving-scipy-to-meson/>__.
Authors
- endolith (12)
- Caio Agiani (2) +
- Emmy Albert (1) +
- Joseph Albert (1)
- Tania Allard (3)
- Carsten Allefeld (1) +
- Kartik Anand (1) +
- Virgile Andreani (2) +
- Weh Andreas (1) +
- Francesco Andreuzzi (5) +
- Kian-Meng Ang (2) +
- Gerrit Ansmann (1)
- Ar-Kareem (1) +
- Shehan Atukorala (1) +
- avishai231 (1) +
- Blair Azzopardi (1)
- Sayantika Banik (2) +
- Ross Barnowski (9)
- Christoph Baumgarten (3)
- Nickolai Belakovski (1)
- Peter Bell (9)
- Sebastian Berg (3)
- Bharath (1) +
- bobcatCA (2) +
- boussoffara (2) +
- Islem BOUZENIA (1) +
- Jake Bowhay (41) +
- Matthew Brett (11)
- Dietrich Brunn (2) +
- Michael Burkhart (2) +
- Evgeni Burovski (96)
- Matthias Bussonnier (20)
- Dominic C (1)
- Cameron (1) +
- CJ Carey (3)
- Thomas A Caswell (2)
- Ali Cetin (2) +
- Hood Chatham (5) +
- Klesk Chonkin (1)
- Craig Citro (1) +
- Dan Cogswell (1) +
- Luigi Cruz (1) +
- Anirudh Dagar (5)
- Brandon David (1)
- deepakdinesh1123 (1) +
- Denton DeLoss (1) +
- derbuihan (2) +
- Sameer Deshmukh (13) +
- Niels Doucet (1) +
- DWesl (8)
- eytanadler (30) +
- Thomas J. Fan (5)
- Isuru Fernando (3)
- Joseph Fox-Rabinovitz (1)
- Ryan Gibson (4) +
- Ralf Gommers (323)
- Srinivas Gorur-Shandilya (1) +
- Alex Griffing (2)
- h-vetinari (5)
- Matt Haberland (459)
- Tristan Hearn (1) +
- Jonathan Helgert (1) +
- Samuel Hinton (1) +
- Jake (1) +
- Stewart Jamieson (1) +
- Jan-Hendrik Müller (1)
- Yikun Jiang (1) +
- JuliaMelle01 (1) +
- jyuv (12) +
- Toshiki Kataoka (1)
- Chris Keefe (1) +
- Robert Kern (4)
- Andrew Knyazev (11)
- Matthias Koeppe (4) +
- Sergey Koposov (1)
- Volodymyr Kozachynskyi (1) +
- Yotaro Kubo (2) +
- Jacob Lapenna (1) +
- Peter Mahler Larsen (8)
- Eric Larson (4)
- Laurynas Mikšys (1) +
- Antony Lee (1)
- Gregory R. Lee (2)
- lerichi (1) +
- Tim Leslie (2)
- P. L. Lim (1)
- Smit Lunagariya (43)
- lutefiskhotdish (1) +
- Cong Ma (12)
- Syrtis Major (1)
- Nicholas McKibben (18)
- Melissa Weber Mendonça (10)
- Mark Mikofski (1)
- Jarrod Millman (13)
- Harsh Mishra (6)
- ML-Nielsen (3) +
- Matthew Murray (1) +
- Andrew Nelson (50)
- Dimitri Papadopoulos Orfanos (1) +
- Evgueni Ovtchinnikov (2) +
- Sambit Panda (1)
- Nick Papior (2)
- Tirth Patel (43)
- Petar Mlinarić (1)
- petroselo (1) +
- Ilhan Polat (64)
- Anthony Polloreno (1)
- Amit Portnoy (1) +
- Quentin Barthélemy (9)
- Patrick N. Raanes (1) +
- Tyler Reddy (174)
- Pamphile Roy (197)
- Vivek Roy (2) +
- sabonerune (1) +
- Niyas Sait (2) +
- Atsushi Sakai (25)
- Mazen Sayed (1) +
- Eduardo Schettino (5) +
- Daniel Schmitz (6) +
- Eli Schwartz (4) +
- SELEE (2) +
- Namami Shanker (4)
- siddhantwahal (1) +
- Gagandeep Singh (8)
- Soph (1) +
- Shivnaren Srinivasan (1) +
- Scott Staniewicz (1) +
- Leo C. Stein (4)
- Albert Steppi (7)
- Christopher Strickland (1) +
- Kai Striega (4)
- Søren Fuglede Jørgensen (1)
- Aleksandr Tagilov (1) +
- Masayuki Takagi (1) +
- Sai Teja (1) +
- Ewout ter Hoeven (2) +
- Will Tirone (2)
- Bas van Beek (7)
- Dhruv Vats (1)
- H. Vetinari (6)
- Arthur Volant (1)
- Samuel Wallan (5)
- Stefan van der Walt (8)
- Warren Weckesser (83)
- Anreas Weh (1)
- Nils Werner (1)
- Aviv Yaish (1) +
- Dowon Yi (1)
- Rory Yorke (1)
- Yosshi999 (1) +
- yuanx749 (2) +
- Gang Zhao (23)
- ZhihuiChen0903 (1)
- Pavel Zun (1) +
- David Zwicker (1) +
A total of 155 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.
- Python
Published by tylerjereddy almost 4 years ago
scipy - SciPy 1.9.0rc2
SciPy 1.9.0 Release Notes
Note: SciPy 1.9.0 is not released yet!
SciPy 1.9.0 is the culmination of 6 months of hard work. It contains
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.9.x branch, and on adding new features on the main branch.
This release requires Python 3.8+ and NumPy 1.18.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- We have modernized our build system to use
meson, substantially reducing our source build times - Added
scipy.optimize.milp, new function for mixed-integer linear programming. - Added
scipy.stats.fitfor fitting discrete and continuous distributions to data. - Tensor-product spline interpolation modes were added to
scipy.interpolate.RegularGridInterpolator. - A new global optimizer (DIviding RECTangles algorithm)
scipy.optimize.direct
New features
scipy.interpolate improvements
- Speed up the
RBFInterpolatorevaluation with high dimensional interpolants. - Added new spline based interpolation methods for
scipy.interpolate.RegularGridInterpolatorand its tutorial. scipy.interpolate.RegularGridInterpolatorandscipy.interpolate.interpnnow accept descending ordered points.RegularGridInterpolatornow handles length-1 grid axes.- The
BivariateSplinesubclasses have a new methodpartial_derivativewhich constructs a new spline object representing a derivative of an original spline. This mirrors the corresponding functionality for univariate splines,splderandBSpline.derivative, and can substantially speed up repeated evaluation of derivatives.
scipy.linalg improvements
scipy.linalg.expmnow accepts nD arrays. Its speed is also improved.- Minimum required LAPACK version is bumped to
3.7.1.
scipy.fft improvements
- Added
uarraymultimethods forscipy.fft.fhtandscipy.fft.ifhtto allow provision of third party backend implementations such as those recently added to CuPy.
scipy.optimize improvements
A new global optimizer,
scipy.optimize.direct(DIviding RECTangles algorithm) was added. For problems with inexpensive function evaluations, like the ones in the SciPy benchmark suite,directis competitive with the best other solvers in SciPy (dual_annealinganddifferential_evolution) in terms of execution time. Seegh-14300 <https://github.com/scipy/scipy/pull/14300>__ for more details.Add a
full_outputparameter toscipy.optimize.curve_fitto output additional solution information.Add a
integralityparameter toscipy.optimize.differential_evolution, enabling integer constraints on parameters.Add a
vectorizedparameter to call a vectorized objective function only once per iteration. This can improve minimization speed by reducing interpreter overhead from the multiple objective function calls.The default method of
scipy.optimize.linprogis now'highs'.Added
scipy.optimize.milp, new function for mixed-integer linear programming.Added Newton-TFQMR method to
newton_krylov.Added support for the
Boundsclass inshgoanddual_annealingfor a more uniform API acrossscipy.optimize.Added the
vectorizedkeyword todifferential_evolution.approx_fprimenow works with vector-valued functions.
scipy.signal improvements
- The new window function
scipy.signal.windows.kaiser_bessel_derivedwas added to compute the Kaiser-Bessel derived window. - Single-precision
hilbertoperations are now faster as a result of more consistentdtypehandling.
scipy.sparse improvements
- Add a
copyparameter toscipy.sparce.csgraph.laplacian. Using inplace computation withcopy=Falsereduces the memory footprint. - Add a
dtypeparameter toscipy.sparce.csgraph.laplacianfor type casting. - Add a
symmetrizedparameter toscipy.sparce.csgraph.laplacianto produce symmetric Laplacian for directed graphs. - Add a
formparameter toscipy.sparce.csgraph.laplaciantaking one of the three values:array, orfunction, orlodetermining the format of the output Laplacian:arrayis a numpy array (backward compatible default);functionis a pointer to a lambda-function evaluating the Laplacian-vector or Laplacian-matrix product;loresults in the format of theLinearOperator.
scipy.sparse.linalg improvements
lobpcgperformance improvements for small input cases.
scipy.spatial improvements
- Add an
orderparameter toscipy.spatial.transform.Rotation.from_quatandscipy.spatial.transform.Rotation.as_quatto specify quaternion format.
scipy.stats improvements
scipy.stats.monte_carlo_testperforms one-sample Monte Carlo hypothesis tests to assess whether a sample was drawn from a given distribution. Besides reproducing the results of hypothesis tests likescipy.stats.ks_1samp,scipy.stats.normaltest, andscipy.stats.cramervonmiseswithout small sample size limitations, it makes it possible to perform similar tests using arbitrary statistics and distributions.Several
scipy.statsfunctions support newaxis(integer or tuple of integers) andnan_policy('raise', 'omit', or 'propagate'), andkeepdimsarguments. These functions also support masked arrays as inputs, even if they do not have ascipy.stats.mstatscounterpart. Edge cases for multidimensional arrays, such as when axis-slices have no unmasked elements or entire inputs are of size zero, are handled consistently.Add a
weightparameter toscipy.stats.hmean.Several improvements have been made to
scipy.stats.levy_stable. Substantial improvement has been made for numerical evaluation of the pdf and cdf, resolving #12658 and #14944. The improvement is particularly dramatic for stability parameteralphaclose to or equal to 1 and foralphabelow but approaching its maximum value of 2. The alternative fast Fourier transform based method for pdf calculation has also been updated to use the approach of Wang and Zhang from their 2008 conference paper Simpson’s rule based FFT method to compute densities of stable distribution, making this method more competitive with the default method. In addition, users now have the option to change the parametrization of the Levy Stable distribution to Nolan's "S0" parametrization which is used internally by SciPy's pdf and cdf implementations. The "S0" parametrization is described in Nolan's paper Numerical calculation of stable densities and distribution functions upon which SciPy's implementation is based. "S0" has the advantage thatdeltaandgammaare proper location and scale parameters. Withdeltaandgammafixed, the location and scale of the resulting distribution remain unchanged asalphaandbetachange. This is not the case for the default "S1" parametrization. Finally, more options have been exposed to allow users to trade off between runtime and accuracy for both the default and FFT methods of pdf and cdf calculation. More information can be found in the documentation here (to be linked).Added
scipy.stats.fitfor fitting discrete and continuous distributions to data.The methods
"pearson"and"tippet"fromscipy.stats.combine_pvalueshave been fixed to return the correct p-values, resolving #15373. In addition, the documentation forscipy.stats.combine_pvalueshas been expanded and improved.Unlike other reduction functions,
stats.modedidn't consume the axis being operated on and failed for negative axis inputs. Both the bugs have been fixed. Note thatstats.modewill now consume the input axis and return an ndarray with theaxisdimension removed.Replaced implementation of
scipy.stats.ncfwith the implementation from Boost for improved reliability.Add a
bitsparameter toscipy.stats.qmc.Sobol. It allows to use from 0 to 64 bits to compute the sequence. Default isNonewhich corresponds to 30 for backward compatibility. Using a higher value allow to sample more points. Note:bitsdoes not affect the output dtype.Add a
integersmethod toscipy.stats.qmc.QMCEngine. It allows sampling integers using any QMC sampler.Improved the fit speed and accuracy of
stats.pareto.Added
qrvsmethod toNumericalInversePolynomialto match the situation forNumericalInverseHermite.Faster random variate generation for
gennormandnakagami.lloyd_centroidal_voronoi_tessellationhas been added to allow improved sample distributions via iterative application of Voronoi diagrams and centering operationsAdd
scipy.stats.qmc.PoissonDiskto sample using the Poisson disk sampling method. It guarantees that samples are separated from each other by a givenradius.Add
scipy.stats.pmeanto calculate the weighted power mean also called generalized mean.
Deprecated features
- Due to collision with the shape parameter
nof several distributions, use of the distributionmomentmethod with keyword argumentnis deprecated. Keywordnis replaced with keywordorder. - Similarly, use of the distribution
intervalmethod with keyword argumentsalphais deprecated. Keywordalphais replaced with keywordconfidence. - The
'simplex','revised simplex', and'interior-point'methods ofscipy.optimize.linprogare deprecated. Methodshighs,highs-ds, orhighs-ipmshould be used in new code. - Support for non-numeric arrays has been deprecated from
stats.mode.pandas.DataFrame.modecan be used instead. - The function
spatial.distance.kulsinskihas been deprecated in favor ofspatial.distance.kulczynski1. - The
maxiterkeyword of the truncated Newton (TNC) algorithm has been deprecated in favour ofmaxfun. - The
verticeskeyword ofDelauney.qhullnow raises a DeprecationWarning, after having been deprecated in documentation only for a long time. - The
extradockeyword ofrv_continuous,rv_discreteandrv_samplenow raises a DeprecationWarning, after having been deprecated in documentation only for a long time.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- Object arrays in sparse matrices now raise an error.
- Inexact indices into sparse matrices now raise an error.
- Passing
radius=Nonetoscipy.spatial.SphericalVoronoinow raises an error (not addingradiusdefaults to 1, as before). - Several BSpline methods now raise an error if inputs have
ndim > 1. - The
_rvsmethod of statistical distributions now requires asizeparameter. - Passing a
fillvaluethat cannot be cast to the output type inscipy.signal.convolve2dnow raises an error. scipy.spatial.distancenow enforces that the input vectors are one-dimensional.- Removed
stats.itemfreq. - Removed
stats.median_absolute_deviation. - Removed
n_jobskeyword argument and use ofk=Nonefromkdtree.query. - Removed
rightkeyword frominterpolate.PPoly.extend. - Removed
debugkeyword fromscipy.linalg.solve_*. - Removed class
_ppformscipy.interpolate. - Removed BSR methods
matvecandmatmat. - Removed
mlabtruncation mode fromcluster.dendrogram. - Removed
cluster.vq.py_vq2. - Removed keyword arguments
ftolandxtolfromoptimize.minimize(method='Nelder-Mead'). - Removed
signal.windows.hanning. - Removed LAPACK
gegvfunctions fromlinalg; this raises the minimally required LAPACK version to 3.7.1. - Removed
spatial.distance.matching. - Removed the alias
scipy.randomfornumpy.random. - Removed docstring related functions from
scipy.misc(docformat,inherit_docstring_from,extend_notes_in_docstring,replace_notes_in_docstring,indentcount_lines,filldoc,unindent_dict,unindent_string). - Removed
linalg.pinv2.
Backwards incompatible changes
- Several
scipy.statsfunctions now convertnp.matrixtonp.ndarrays before the calculation is performed. In this case, the output will be a scalar ornp.ndarrayof appropriate shape rather than a 2Dnp.matrix. Similarly, while masked elements of masked arrays are still ignored, the output will be a scalar ornp.ndarrayrather than a masked array withmask=False. - The default method of
scipy.optimize.linprogis now'highs', not'interior-point'(which is now deprecated), so callback functions and some options are no longer supported with the default method. With the default method, thexattribute of the returnedOptimizeResultis nowNone(instead of a non-optimal array) when an optimal solution cannot be found (e.g. infeasible problem). - For
scipy.stats.combine_pvalues, the sign of the test statistic returned for the method"pearson"has been flipped so that higher values of the statistic now correspond to lower p-values, making the statistic more consistent with those of the other methods and with the majority of the literature. scipy.linalg.expmdue to historical reasons was using the sparse implementation and thus was accepting sparse arrays. Now it only works with nDarrays. For sparse usage,scipy.sparse.linalg.expmneeds to be used explicitly.- The definition of
scipy.stats.circvarhas reverted to the one that is standard in the literature; note that this is not the same as the square ofscipy.stats.circstd. - Remove inheritance to
QMCEngineinMultinomialQMCandMultivariateNormalQMC. It removes the methodsfast_forwardandreset. - Init of
MultinomialQMCnow require the number of trials withn_trials. Hence,MultinomialQMC.randomoutput has now the correct shape(n, pvals). - Several function-specific warnings (
F_onewayConstantInputWarning,F_onewayBadInputSizesWarning,PearsonRConstantInputWarning,PearsonRNearConstantInputWarning,SpearmanRConstantInputWarning, andBootstrapDegenerateDistributionWarning) have been replaced with more general warnings.
Other changes
A draft developer CLI is available for SciPy, leveraging the
doit,clickandrich-clicktools. For more details, see gh-15959.The SciPy contributor guide has been reorganized and updated (see #15947 for details).
QUADPACK Fortran routines in
scipy.integrate, which powerscipy.integrate.quad, have been marked asrecursive. This should fix rare issues in multivariate integration (nquadand friends) and obviate the need for compiler-specific compile flags (/recursivefor ifort etc). Please file an issue if this change turns out problematic for you. This is also true forFITPACKroutines inscipy.interpolate, which powersplrep,splevetc., and*UnivariateSplineand*BivariateSplineclasses.the
USE_PROPACKenvironment variable has been renamed toSCIPY_USE_PROPACK; setting to a non-zero value will enable the usage of thePROPACKlibrary as before
Lazy access to subpackages
Before this release, all subpackages of SciPy (cluster, fft, ndimage,
etc.) had to be explicitly imported. Now, these subpackages are lazily loaded
as soon as they are accessed, so that the following is possible (if desired
for interactive use, it's not actually recommended for code,
see :ref:scipy-api):
import scipy as sp; sp.fft.dct([1, 2, 3]). Advantages include: making it
easier to navigate SciPy in interactive terminals, reducing subpackage import
conflicts (which before required
import networkx.linalg as nla; import scipy.linalg as sla),
and avoiding repeatedly having to update imports during teaching &
experimentation. Also see
the related community specification document.
SciPy switched to Meson as its build system
This is the first release that ships with Meson as
the build system. When installing with pip or pypa/build, Meson will be
used (invoked via the meson-python build hook). This change brings
significant benefits - most importantly much faster build times, but also
better support for cross-compilation and cleaner build logs.
Note:
This release still ships with support for numpy.distutils-based builds
as well. Those can be invoked through the setup.py command-line
interface (e.g., python setup.py install). It is planned to remove
numpy.distutils support before the 1.10.0 release.
When building from source, a number of things have changed compared to building
with numpy.distutils:
- New build dependencies:
meson,ninja, andpkg-config.setuptoolsandwheelare no longer needed. - BLAS and LAPACK libraries that are supported haven't changed, however the
discovery mechanism has: that is now using
pkg-configinstead of hardcoded paths or asite.cfgfile. - The build defaults to using OpenBLAS. See :ref:
blas-lapack-selectionfor details.
The two CLIs that can be used to build wheels are pip and build. In
addition, the SciPy repo contains a python dev.py CLI for any kind of
development task (see its --help for details). For a comparison between old
(distutils) and new (meson) build commands, see :ref:meson-faq.
For more information on the introduction of Meson support in SciPy, see
gh-13615 <https://github.com/scipy/scipy/issues/13615>__ and
this blog post <https://labs.quansight.org/blog/2021/07/moving-scipy-to-meson/>__.
Authors
- endolith (12)
- Caio Agiani (2) +
- Emmy Albert (1) +
- Joseph Albert (1)
- Tania Allard (3)
- Carsten Allefeld (1) +
- Kartik Anand (1) +
- Virgile Andreani (2) +
- Weh Andreas (1) +
- Francesco Andreuzzi (5) +
- Kian-Meng Ang (2) +
- Gerrit Ansmann (1)
- Ar-Kareem (1) +
- Shehan Atukorala (1) +
- avishai231 (1) +
- Blair Azzopardi (1)
- Sayantika Banik (2) +
- Ross Barnowski (9)
- Christoph Baumgarten (3)
- Nickolai Belakovski (1)
- Peter Bell (9)
- Sebastian Berg (3)
- Bharath (1) +
- bobcatCA (2) +
- boussoffara (2) +
- Islem BOUZENIA (1) +
- Jake Bowhay (41) +
- Matthew Brett (11)
- Dietrich Brunn (2) +
- Michael Burkhart (2) +
- Evgeni Burovski (96)
- Matthias Bussonnier (20)
- Dominic C (1)
- Cameron (1) +
- CJ Carey (3)
- Thomas A Caswell (2)
- Ali Cetin (2) +
- Hood Chatham (5) +
- Klesk Chonkin (1)
- Craig Citro (1) +
- Dan Cogswell (1) +
- Luigi Cruz (1) +
- Anirudh Dagar (5)
- Brandon David (1)
- deepakdinesh1123 (1) +
- Denton DeLoss (1) +
- derbuihan (2) +
- Sameer Deshmukh (13) +
- Niels Doucet (1) +
- DWesl (8)
- eytanadler (30) +
- Thomas J. Fan (5)
- Isuru Fernando (3)
- Joseph Fox-Rabinovitz (1)
- Ryan Gibson (4) +
- Ralf Gommers (314)
- Srinivas Gorur-Shandilya (1) +
- Alex Griffing (2)
- h-vetinari (3)
- Matt Haberland (446)
- Tristan Hearn (1) +
- Jonathan Helgert (1) +
- Samuel Hinton (1) +
- Jake (1) +
- Stewart Jamieson (1) +
- Jan-Hendrik Müller (1)
- Yikun Jiang (1) +
- JuliaMelle01 (1) +
- jyuv (12) +
- Toshiki Kataoka (1)
- Chris Keefe (1) +
- Robert Kern (4)
- Andrew Knyazev (11)
- Matthias Koeppe (4) +
- Sergey Koposov (1)
- Volodymyr Kozachynskyi (1) +
- Yotaro Kubo (2) +
- Jacob Lapenna (1) +
- Peter Mahler Larsen (8)
- Eric Larson (4)
- Laurynas Mikšys (1) +
- Antony Lee (1)
- Gregory R. Lee (2)
- lerichi (1) +
- Tim Leslie (2)
- P. L. Lim (1)
- Smit Lunagariya (43)
- lutefiskhotdish (1) +
- Cong Ma (12)
- Syrtis Major (1)
- Nicholas McKibben (17)
- Melissa Weber Mendonça (10)
- Mark Mikofski (1)
- Jarrod Millman (13)
- Harsh Mishra (6)
- ML-Nielsen (3) +
- Matthew Murray (1) +
- Andrew Nelson (50)
- Dimitri Papadopoulos Orfanos (1) +
- Evgueni Ovtchinnikov (2) +
- Sambit Panda (1)
- Nick Papior (2)
- Tirth Patel (43)
- Petar Mlinarić (1)
- petroselo (1) +
- Ilhan Polat (64)
- Anthony Polloreno (1)
- Amit Portnoy (1) +
- Quentin Barthélemy (9)
- Patrick N. Raanes (1) +
- Tyler Reddy (144)
- Pamphile Roy (197)
- Vivek Roy (2) +
- sabonerune (1) +
- Niyas Sait (2) +
- Atsushi Sakai (25)
- Mazen Sayed (1) +
- Eduardo Schettino (5) +
- Daniel Schmitz (6) +
- Eli Schwartz (4) +
- SELEE (2) +
- Namami Shanker (4)
- siddhantwahal (1) +
- Gagandeep Singh (8)
- Soph (1) +
- Shivnaren Srinivasan (1) +
- Scott Staniewicz (1) +
- Leo C. Stein (4)
- Albert Steppi (7)
- Christopher Strickland (1) +
- Kai Striega (4)
- Søren Fuglede Jørgensen (1)
- Aleksandr Tagilov (1) +
- Masayuki Takagi (1) +
- Sai Teja (1) +
- Ewout ter Hoeven (2) +
- Will Tirone (2)
- Bas van Beek (7)
- Dhruv Vats (1)
- H. Vetinari (6)
- Arthur Volant (1)
- Samuel Wallan (5)
- Stefan van der Walt (8)
- Warren Weckesser (83)
- Anreas Weh (1)
- Nils Werner (1)
- Aviv Yaish (1) +
- Dowon Yi (1)
- Rory Yorke (1)
- Yosshi999 (1) +
- yuanx749 (2) +
- Gang Zhao (23)
- ZhihuiChen0903 (1)
- Pavel Zun (1) +
- David Zwicker (1) +
A total of 155 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.
- Python
Published by tylerjereddy almost 4 years ago
scipy - SciPy 1.9.0rc1
SciPy 1.9.0 Release Notes
Note: SciPy 1.9.0 is not released yet!
SciPy 1.9.0 is the culmination of 6 months of hard work. It contains
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.9.x branch, and on adding new features on the main branch.
This release requires Python 3.8+ and NumPy 1.18.5 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- We have modernized our build system to use
meson, substantially reducing our source build times - Added
scipy.optimize.milp, new function for mixed-integer linear programming. - Added
scipy.stats.fitfor fitting discrete and continuous distributions to data. - Tensor-product spline interpolation modes were added to
scipy.interpolate.RegularGridInterpolator. - A new global optimizer (DIviding RECTangles algorithm)
scipy.optimize.direct
New features
scipy.interpolate improvements
- Speed up the
RBFInterpolatorevaluation with high dimensional interpolants. - Added new spline based interpolation methods for
scipy.interpolate.RegularGridInterpolatorand its tutorial. scipy.interpolate.RegularGridInterpolatorandscipy.interpolate.interpnnow accept descending ordered points.RegularGridInterpolatornow handles length-1 grid axes.- The
BivariateSplinesubclasses have a new methodpartial_derivativewhich constructs a new spline object representing a derivative of an original spline. This mirrors the corresponding functionality for univariate splines,splderandBSpline.derivative, and can substantially speed up repeated evaluation of derivatives.
scipy.linalg improvements
scipy.linalg.expmnow accepts nD arrays. Its speed is also improved.- Minimum required LAPACK version is bumped to
3.7.1.
scipy.fft improvements
- Added
uarraymultimethods forscipy.fft.fhtandscipy.fft.ifhtto allow provision of third party backend implementations such as those recently added to CuPy.
scipy.optimize improvements
A new global optimizer,
scipy.optimize.direct(DIviding RECTangles algorithm) was added. For problems with inexpensive function evaluations, like the ones in the SciPy benchmark suite,directis competitive with the best other solvers in SciPy (dual_annealinganddifferential_evolution) in terms of execution time. Seegh-14300 <https://github.com/scipy/scipy/pull/14300>__ for more details.Add a
full_outputparameter toscipy.optimize.curve_fitto output additional solution information.Add a
integralityparameter toscipy.optimize.differential_evolution, enabling integer constraints on parameters.Add a
vectorizedparameter to call a vectorized objective function only once per iteration. This can improve minimization speed by reducing interpreter overhead from the multiple objective function calls.The default method of
scipy.optimize.linprogis now'highs'.Added
scipy.optimize.milp, new function for mixed-integer linear programming.Added Newton-TFQMR method to
newton_krylov.Added support for the
Boundsclass inshgoanddual_annealingfor a more uniform API acrossscipy.optimize.Added the
vectorizedkeyword todifferential_evolution.approx_fprimenow works with vector-valued functions.
scipy.signal improvements
- The new window function
scipy.signal.windows.kaiser_bessel_derivedwas added to compute the Kaiser-Bessel derived window. - Single-precision
hilbertoperations are now faster as a result of more consistentdtypehandling.
scipy.sparse improvements
- Add a
copyparameter toscipy.sparce.csgraph.laplacian. Using inplace computation withcopy=Falsereduces the memory footprint. - Add a
dtypeparameter toscipy.sparce.csgraph.laplacianfor type casting. - Add a
symmetrizedparameter toscipy.sparce.csgraph.laplacianto produce symmetric Laplacian for directed graphs. - Add a
formparameter toscipy.sparce.csgraph.laplaciantaking one of the three values:array, orfunction, orlodetermining the format of the output Laplacian:arrayis a numpy array (backward compatible default);functionis a pointer to a lambda-function evaluating the Laplacian-vector or Laplacian-matrix product;loresults in the format of theLinearOperator.
scipy.sparse.linalg improvements
lobpcgperformance improvements for small input cases.
scipy.spatial improvements
- Add an
orderparameter toscipy.spatial.transform.Rotation.from_quatandscipy.spatial.transform.Rotation.as_quatto specify quaternion format.
scipy.stats improvements
scipy.stats.monte_carlo_testperforms one-sample Monte Carlo hypothesis tests to assess whether a sample was drawn from a given distribution. Besides reproducing the results of hypothesis tests likescipy.stats.ks_1samp,scipy.stats.normaltest, andscipy.stats.cramervonmiseswithout small sample size limitations, it makes it possible to perform similar tests using arbitrary statistics and distributions.Several
scipy.statsfunctions support newaxis(integer or tuple of integers) andnan_policy('raise', 'omit', or 'propagate'), andkeepdimsarguments. These functions also support masked arrays as inputs, even if they do not have ascipy.stats.mstatscounterpart. Edge cases for multidimensional arrays, such as when axis-slices have no unmasked elements or entire inputs are of size zero, are handled consistently.Add a
weightparameter toscipy.stats.hmean.Several improvements have been made to
scipy.stats.levy_stable. Substantial improvement has been made for numerical evaluation of the pdf and cdf, resolving #12658 and #14944. The improvement is particularly dramatic for stability parameteralphaclose to or equal to 1 and foralphabelow but approaching its maximum value of 2. The alternative fast Fourier transform based method for pdf calculation has also been updated to use the approach of Wang and Zhang from their 2008 conference paper Simpson’s rule based FFT method to compute densities of stable distribution, making this method more competitive with the default method. In addition, users now have the option to change the parametrization of the Levy Stable distribution to Nolan's "S0" parametrization which is used internally by SciPy's pdf and cdf implementations. The "S0" parametrization is described in Nolan's paper Numerical calculation of stable densities and distribution functions upon which SciPy's implementation is based. "S0" has the advantage thatdeltaandgammaare proper location and scale parameters. Withdeltaandgammafixed, the location and scale of the resulting distribution remain unchanged asalphaandbetachange. This is not the case for the default "S1" parametrization. Finally, more options have been exposed to allow users to trade off between runtime and accuracy for both the default and FFT methods of pdf and cdf calculation. More information can be found in the documentation here (to be linked).Added
scipy.stats.fitfor fitting discrete and continuous distributions to data.The methods
"pearson"and"tippet"fromscipy.stats.combine_pvalueshave been fixed to return the correct p-values, resolving #15373. In addition, the documentation forscipy.stats.combine_pvalueshas been expanded and improved.Unlike other reduction functions,
stats.modedidn't consume the axis being operated on and failed for negative axis inputs. Both the bugs have been fixed. Note thatstats.modewill now consume the input axis and return an ndarray with theaxisdimension removed.Replaced implementation of
scipy.stats.ncfwith the implementation from Boost for improved reliability.Add a
bitsparameter toscipy.stats.qmc.Sobol. It allows to use from 0 to 64 bits to compute the sequence. Default isNonewhich corresponds to 30 for backward compatibility. Using a higher value allow to sample more points. Note:bitsdoes not affect the output dtype.Add a
integersmethod toscipy.stats.qmc.QMCEngine. It allows sampling integers using any QMC sampler.Improved the fit speed and accuracy of
stats.pareto.Added
qrvsmethod toNumericalInversePolynomialto match the situation forNumericalInverseHermite.Faster random variate generation for
gennormandnakagami.lloyd_centroidal_voronoi_tessellationhas been added to allow improved sample distributions via iterative application of Voronoi diagrams and centering operationsAdd
scipy.stats.qmc.PoissonDiskto sample using the Poisson disk sampling method. It guarantees that samples are separated from each other by a givenradius.Add
scipy.stats.pmeanto calculate the weighted power mean also called generalized mean.
Deprecated features
- Due to collision with the shape parameter
nof several distributions, use of the distributionmomentmethod with keyword argumentnis deprecated. Keywordnis replaced with keywordorder. - Similarly, use of the distribution
intervalmethod with keyword argumentsalphais deprecated. Keywordalphais replaced with keywordconfidence. - The
'simplex','revised simplex', and'interior-point'methods ofscipy.optimize.linprogare deprecated. Methodshighs,highs-ds, orhighs-ipmshould be used in new code. - Support for non-numeric arrays has been deprecated from
stats.mode.pandas.DataFrame.modecan be used instead. - The function
spatial.distance.kulsinskihas been deprecated in favor ofspatial.distance.kulczynski1. - The
maxiterkeyword of the truncated Newton (TNC) algorithm has been deprecated in favour ofmaxfun. - The
verticeskeyword ofDelauney.qhullnow raises a DeprecationWarning, after having been deprecated in documentation only for a long time. - The
extradockeyword ofrv_continuous,rv_discreteandrv_samplenow raises a DeprecationWarning, after having been deprecated in documentation only for a long time.
Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:
- Object arrays in sparse matrices now raise an error.
- Inexact indices into sparse matrices now raise an error.
- Passing
radius=Nonetoscipy.spatial.SphericalVoronoinow raises an error (not addingradiusdefaults to 1, as before). - Several BSpline methods now raise an error if inputs have
ndim > 1. - The
_rvsmethod of statistical distributions now requires asizeparameter. - Passing a
fillvaluethat cannot be cast to the output type inscipy.signal.convolve2dnow raises an error. scipy.spatial.distancenow enforces that the input vectors are one-dimensional.- Removed
stats.itemfreq. - Removed
stats.median_absolute_deviation. - Removed
n_jobskeyword argument and use ofk=Nonefromkdtree.query. - Removed
rightkeyword frominterpolate.PPoly.extend. - Removed
debugkeyword fromscipy.linalg.solve_*. - Removed class
_ppformscipy.interpolate. - Removed BSR methods
matvecandmatmat. - Removed
mlabtruncation mode fromcluster.dendrogram. - Removed
cluster.vq.py_vq2. - Removed keyword arguments
ftolandxtolfromoptimize.minimize(method='Nelder-Mead'). - Removed
signal.windows.hanning. - Removed LAPACK
gegvfunctions fromlinalg; this raises the minimally required LAPACK version to 3.7.1. - Removed
spatial.distance.matching. - Removed the alias
scipy.randomfornumpy.random. - Removed docstring related functions from
scipy.misc(docformat,inherit_docstring_from,extend_notes_in_docstring,replace_notes_in_docstring,indentcount_lines,filldoc,unindent_dict,unindent_string). - Removed
linalg.pinv2.
Backwards incompatible changes
- Several
scipy.statsfunctions now convertnp.matrixtonp.ndarrays before the calculation is performed. In this case, the output will be a scalar ornp.ndarrayof appropriate shape rather than a 2Dnp.matrix. Similarly, while masked elements of masked arrays are still ignored, the output will be a scalar ornp.ndarrayrather than a masked array withmask=False. - The default method of
scipy.optimize.linprogis now'highs', not'interior-point'(which is now deprecated), so callback functions and some options are no longer supported with the default method. - For
scipy.stats.combine_pvalues, the sign of the test statistic returned for the method"pearson"has been flipped so that higher values of the statistic now correspond to lower p-values, making the statistic more consistent with those of the other methods and with the majority of the literature. scipy.linalg.expmdue to historical reasons was using the sparse implementation and thus was accepting sparse arrays. Now it only works with nDarrays. For sparse usage,scipy.sparse.linalg.expmneeds to be used explicitly.- The definition of
scipy.stats.circvarhas reverted to the one that is standard in the literature; note that this is not the same as the square ofscipy.stats.circstd. - Remove inheritance to
QMCEngineinMultinomialQMCandMultivariateNormalQMC. It removes the methodsfast_forwardandreset. - Init of
MultinomialQMCnow require the number of trials withn_trials. Hence,MultinomialQMC.randomoutput has now the correct shape(n, pvals). - Several function-specific warnings (
F_onewayConstantInputWarning,F_onewayBadInputSizesWarning,PearsonRConstantInputWarning,PearsonRNearConstantInputWarning,SpearmanRConstantInputWarning, andBootstrapDegenerateDistributionWarning) have been replaced with more general warnings.
Other changes
A draft developer CLI is available for SciPy, leveraging the
doit,clickandrich-clicktools. For more details, see gh-15959.The SciPy contributor guide has been reorganized and updated (see #15947 for details).
QUADPACK Fortran routines in
scipy.integrate, which powerscipy.integrate.quad, have been marked asrecursive. This should fix rare issues in multivariate integration (nquadand friends) and obviate the need for compiler-specific compile flags (/recursivefor ifort etc). Please file an issue if this change turns out problematic for you. This is also true forFITPACKroutines inscipy.interpolate, which powersplrep,splevetc., and*UnivariateSplineand*BivariateSplineclasses.the
USE_PROPACKenvironment variable has been renamed toSCIPY_USE_PROPACK; setting to a non-zero value will enable the usage of thePROPACKlibrary as before
Lazy access to subpackages
Before this release, all subpackages of SciPy (cluster, fft, ndimage,
etc.) had to be explicitly imported. Now, these subpackages are lazily loaded
as soon as they are accessed, so that the following is possible (if desired
for interactive use, it's not actually recommended for code,
see :ref:scipy-api):
import scipy as sp; sp.fft.dct([1, 2, 3]). Advantages include: making it
easier to navigate SciPy in interactive terminals, reducing subpackage import
conflicts (which before required
import networkx.linalg as nla; import scipy.linalg as sla),
and avoiding repeatedly having to update imports during teaching &
experimentation. Also see
the related community specification document.
SciPy switched to Meson as its build system
This is the first release that ships with Meson as
the build system. When installing with pip or pypa/build, Meson will be
used (invoked via the meson-python build hook). This change brings
significant benefits - most importantly much faster build times, but also
better support for cross-compilation and cleaner build logs.
Note:
This release still ships with support for numpy.distutils-based builds
as well. Those can be invoked through the setup.py command-line
interface (e.g., python setup.py install). It is planned to remove
numpy.distutils support before the 1.10.0 release.
When building from source, a number of things have changed compared to building
with numpy.distutils:
- New build dependencies:
meson,ninja, andpkg-config.setuptoolsandwheelare no longer needed. - BLAS and LAPACK libraries that are supported haven't changed, however the
discovery mechanism has: that is now using
pkg-configinstead of hardcoded paths or asite.cfgfile. - The build defaults to using OpenBLAS. See :ref:
blas-lapack-selectionfor details.
The two CLIs that can be used to build wheels are pip and build. In
addition, the SciPy repo contains a python dev.py CLI for any kind of
development task (see its --help for details). For a comparison between old
(distutils) and new (meson) build commands, see :ref:meson-faq.
For more information on the introduction of Meson support in SciPy, see
gh-13615 <https://github.com/scipy/scipy/issues/13615>__ and
this blog post <https://labs.quansight.org/blog/2021/07/moving-scipy-to-meson/>__.
Authors
- endolith (12)
- Caio Agiani (2) +
- Emmy Albert (1) +
- Joseph Albert (1)
- Tania Allard (3)
- Carsten Allefeld (1) +
- Kartik Anand (1) +
- Virgile Andreani (2) +
- Weh Andreas (1) +
- Francesco Andreuzzi (5) +
- Kian-Meng Ang (2) +
- Gerrit Ansmann (1)
- Ar-Kareem (1) +
- Shehan Atukorala (1) +
- avishai231 (1) +
- Blair Azzopardi (1)
- Sayantika Banik (2) +
- Ross Barnowski (8)
- Christoph Baumgarten (3)
- Nickolai Belakovski (1)
- Peter Bell (9)
- Sebastian Berg (2)
- Bharath (1) +
- bobcatCA (2) +
- boussoffara (2) +
- Islem BOUZENIA (1) +
- Jake Bowhay (41) +
- Matthew Brett (11)
- Dietrich Brunn (2) +
- Michael Burkhart (2) +
- Evgeni Burovski (96)
- Matthias Bussonnier (20)
- Dominic C (1)
- Cameron (1) +
- CJ Carey (3)
- Thomas A Caswell (2)
- Ali Cetin (2) +
- Hood Chatham (5) +
- Klesk Chonkin (1)
- Craig Citro (1) +
- Dan Cogswell (1) +
- Luigi Cruz (1) +
- Anirudh Dagar (5)
- Brandon David (1)
- deepakdinesh1123 (1) +
- Denton DeLoss (1) +
- derbuihan (2) +
- Sameer Deshmukh (13) +
- Niels Doucet (1) +
- DWesl (8)
- eytanadler (30) +
- Thomas J. Fan (5)
- Isuru Fernando (3)
- Joseph Fox-Rabinovitz (1)
- Ryan Gibson (4) +
- Ralf Gommers (308)
- Srinivas Gorur-Shandilya (1) +
- Alex Griffing (2)
- h-vetinari (3)
- Matt Haberland (442)
- Tristan Hearn (1) +
- Jonathan Helgert (1) +
- Samuel Hinton (1) +
- Jake (1) +
- Stewart Jamieson (1) +
- Jan-Hendrik Müller (1)
- Yikun Jiang (1) +
- JuliaMelle01 (1) +
- jyuv (12) +
- Chris Keefe (1) +
- Robert Kern (4)
- Andrew Knyazev (11)
- Matthias Koeppe (4) +
- Sergey Koposov (1)
- Volodymyr Kozachynskyi (1) +
- Yotaro Kubo (2) +
- Jacob Lapenna (1) +
- Peter Mahler Larsen (8)
- Eric Larson (4)
- Laurynas Mikšys (1) +
- Antony Lee (1)
- Gregory R. Lee (2)
- lerichi (1) +
- Tim Leslie (2)
- P. L. Lim (1)
- Smit Lunagariya (43)
- lutefiskhotdish (1) +
- Cong Ma (12)
- Syrtis Major (1)
- Nicholas McKibben (17)
- Melissa Weber Mendonça (10)
- Mark Mikofski (1)
- Jarrod Millman (13)
- Harsh Mishra (6)
- ML-Nielsen (3) +
- Matthew Murray (1) +
- Andrew Nelson (50)
- Dimitri Papadopoulos Orfanos (1) +
- Evgueni Ovtchinnikov (2) +
- Sambit Panda (1)
- Nick Papior (2)
- Tirth Patel (43)
- Petar Mlinarić (1)
- petroselo (1) +
- Ilhan Polat (64)
- Anthony Polloreno (1)
- Amit Portnoy (1) +
- Quentin Barthélemy (9)
- Patrick N. Raanes (1) +
- Tyler Reddy (121)
- Pamphile Roy (196)
- Vivek Roy (2) +
- Niyas Sait (2) +
- Atsushi Sakai (25)
- Mazen Sayed (1) +
- Eduardo Schettino (5) +
- Daniel Schmitz (6) +
- Eli Schwartz (3) +
- SELEE (2) +
- Namami Shanker (4)
- siddhantwahal (1) +
- Gagandeep Singh (8)
- Soph (1) +
- Shivnaren Srinivasan (1) +
- Scott Staniewicz (1) +
- Leo C. Stein (4)
- Albert Steppi (7)
- Christopher Strickland (1) +
- Kai Striega (4)
- Søren Fuglede Jørgensen (1)
- Aleksandr Tagilov (1) +
- Masayuki Takagi (1) +
- Sai Teja (1) +
- Ewout ter Hoeven (2) +
- Will Tirone (2)
- Bas van Beek (7)
- Dhruv Vats (1)
- H. Vetinari (4)
- Arthur Volant (1)
- Samuel Wallan (5)
- Stefan van der Walt (8)
- Warren Weckesser (83)
- Anreas Weh (1)
- Nils Werner (1)
- Aviv Yaish (1) +
- Dowon Yi (1)
- Rory Yorke (1)
- Yosshi999 (1) +
- yuanx749 (2) +
- Gang Zhao (23)
- ZhihuiChen0903 (1)
- Pavel Zun (1) +
- David Zwicker (1) +
A total of 153 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.
- Python
Published by tylerjereddy almost 4 years ago
scipy - SciPy 1.8.1
SciPy 1.8.1 Release Notes
SciPy 1.8.1 is a bug-fix release with no new features
compared to 1.8.0. Notably, usage of Pythran has been
restored for Windows builds/binaries.
Authors
- Henry Schreiner
- Maximilian Nöthe
- Sebastian Berg (1)
- Sameer Deshmukh (1) +
- Niels Doucet (1) +
- DWesl (4)
- Isuru Fernando (1)
- Ralf Gommers (4)
- Matt Haberland (1)
- Andrew Nelson (1)
- Dimitri Papadopoulos Orfanos (1) +
- Tirth Patel (3)
- Tyler Reddy (46)
- Pamphile Roy (7)
- Niyas Sait (1) +
- H. Vetinari (2)
- Warren Weckesser (1)
A total of 17 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.
- Python
Published by tylerjereddy about 4 years ago
scipy - SciPy 1.8.0
SciPy 1.8.0 Release Notes
SciPy 1.8.0 is the culmination of 6 months of hard work. It contains
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.8.x branch, and on adding new features on the master branch.
This release requires Python 3.8+ and NumPy 1.17.3 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A sparse array API has been added for early testing and feedback; this work is ongoing, and users should expect minor API refinements over the next few releases.
- The sparse SVD library PROPACK is now vendored with SciPy, and an interface
is exposed via
scipy.sparse.svdswithsolver='PROPACK'. It is currently default-off due to potential issues on Windows that we aim to resolve in the next release, but can be optionally enabled at runtime for friendly testing with an environment variable setting ofUSE_PROPACK=1. - A new
scipy.stats.samplingsubmodule that leverages theUNU.RANC library to sample from arbitrary univariate non-uniform continuous and discrete distributions - All namespaces that were private but happened to miss underscores in their names have been deprecated.
New features
scipy.fft improvements
Added an orthogonalize=None parameter to the real transforms in scipy.fft
which controls whether the modified definition of DCT/DST is used without
changing the overall scaling.
scipy.fft backend registration is now smoother, operating with a single
registration call and no longer requiring a context manager.
scipy.integrate improvements
scipy.integrate.quad_vec introduces a new optional keyword-only argument,
args. args takes in a tuple of extra arguments if any (default is
args=()), which is then internally used to pass into the callable function
(needing these extra arguments) which we wish to integrate.
scipy.interpolate improvements
scipy.interpolate.BSpline has a new method, design_matrix, which
constructs a design matrix of b-splines in the sparse CSR format.
A new method from_cubic in BSpline class allows to convert a
CubicSpline object to BSpline object.
scipy.linalg improvements
scipy.linalg gained three new public array structure investigation functions.
scipy.linalg.bandwidth returns information about the bandedness of an array
and can be used to test for triangular structure discovery, while
scipy.linalg.issymmetric and scipy.linalg.ishermitian test the array for
exact and approximate symmetric/Hermitian structure.
scipy.optimize improvements
scipy.optimize.check_grad introduces two new optional keyword only arguments,
direction and seed. direction can take values, 'all' (default),
in which case all the one hot direction vectors will be used for verifying
the input analytical gradient function and 'random', in which case a
random direction vector will be used for the same purpose. seed
(default is None) can be used for reproducing the return value of
check_grad function. It will be used only when direction='random'.
The scipy.optimize.minimize TNC method has been rewritten to use Cython
bindings. This also fixes an issue with the callback altering the state of the
optimization.
Added optional parameters target_accept_rate and stepwise_factor for
adapative step size adjustment in basinhopping.
The epsilon argument to approx_fprime is now optional so that it may
have a default value consistent with most other functions in scipy.optimize.
scipy.signal improvements
Add analog argument, default False, to zpk2sos, and add new pairing
option 'minimal' to construct analog and minimal discrete SOS arrays.
tf2sos uses zpk2sos; add analog argument here as well, and pass it on
to zpk2sos.
savgol_coeffs and savgol_filter now work for even window lengths.
Added the Chirp Z-transform and Zoom FFT available as scipy.signal.CZT and
scipy.signal.ZoomFFT.
scipy.sparse improvements
An array API has been added for early testing and feedback; this
work is ongoing, and users should expect minor API refinements over
the next few releases. Please refer to the scipy.sparse
docstring for more information.
maximum_flow introduces optional keyword only argument, method
which accepts either, 'edmonds-karp' (Edmonds Karp algorithm) or
'dinic' (Dinic's algorithm). Moreover, 'dinic' is used as default
value for method which means that Dinic's algorithm is used for computing
maximum flow unless specified. See, the comparison between the supported
algorithms in
this comment <https://github.com/scipy/scipy/pull/14358#issue-684212523>_.
Parameters atol, btol now default to 1e-6 in
scipy.sparse.linalg.lsmr to match with default values in
scipy.sparse.linalg.lsqr.
Add the Transpose-Free Quasi-Minimal Residual algorithm (TFQMR) for general
nonsingular non-Hermitian linear systems in scipy.sparse.linalg.tfqmr.
The sparse SVD library PROPACK is now vendored with SciPy, and an interface is
exposed via scipy.sparse.svds with solver='PROPACK'. For some problems,
this may be faster and/or more accurate than the default, ARPACK. PROPACK
functionality is currently opt-in--you must specify USE_PROPACK=1 at
runtime to use it due to potential issues on Windows
that we aim to resolve in the next release.
sparse.linalg iterative solvers now have a nonzero initial guess option,
which may be specified as x0 = 'Mb'.
The trace method has been added for sparse matrices.
scipy.spatial improvements
scipy.spatial.transform.Rotation now supports item assignment and has a new
concatenate method.
Add scipy.spatial.distance.kulczynski1 in favour of
scipy.spatial.distance.kulsinski which will be deprecated in the next
release.
scipy.spatial.distance.minkowski now also supports 0<p<1.
scipy.special improvements
The new function scipy.special.log_expit computes the logarithm of the
logistic sigmoid function. The function is formulated to provide accurate
results for large positive and negative inputs, so it avoids the problems
that would occur in the naive implementation log(expit(x)).
A suite of five new functions for elliptic integrals:
scipy.special.ellipr{c,d,f,g,j}. These are the
Carlson symmetric elliptic integrals <https://dlmf.nist.gov/19.16>_, which
have computational advantages over the classical Legendre integrals. Previous
versions included some elliptic integrals from the Cephes library
(scipy.special.ellip{k,km1,kinc,e,einc}) but was missing the integral of
third kind (Legendre's Pi), which can be evaluated using the new Carlson
functions. The new Carlson elliptic integral functions can be evaluated in the
complex plane, whereas the Cephes library's functions are only defined for
real inputs.
Several defects in scipy.special.hyp2f1 have been corrected. Approximately
correct values are now returned for z near exp(+-i*pi/3), fixing
#8054 <https://github.com/scipy/scipy/issues/8054>. Evaluation for such z
is now calculated through a series derived by
López and Temme (2013) <https://arxiv.org/abs/1306.2046> that converges in
these regions. In addition, degenerate cases with one or more of a, b,
and/or c a non-positive integer are now handled in a manner consistent with
mpmath's hyp2f1 implementation <https://mpmath.org/doc/current/functions/hypergeometric.html>,
which fixes #7340 <https://github.com/scipy/scipy/issues/7340>. These fixes
were made as part of an effort to rewrite the Fortran 77 implementation of
hyp2f1 in Cython piece by piece. This rewriting is now roughly 50% complete.
scipy.stats improvements
scipy.stats.qmc.LatinHypercube introduces two new optional keyword-only
arguments, optimization and strength. optimization is either
None or random-cd. In the latter, random permutations are performed to
improve the centered discrepancy. strength is either 1 or 2. 1 corresponds
to the classical LHS while 2 has better sub-projection properties. This
construction is referred to as an orthogonal array based LHS of strength 2.
In both cases, the output is still a LHS.
scipy.stats.qmc.Halton is faster as the underlying Van der Corput sequence
was ported to Cython.
The alternative parameter was added to the kendalltau and somersd
functions to allow one-sided hypothesis testing. Similarly, the masked
versions of skewtest, kurtosistest, ttest_1samp, ttest_ind,
and ttest_rel now also have an alternative parameter.
Add scipy.stats.gzscore to calculate the geometrical z score.
Random variate generators to sample from arbitrary univariate non-uniform
continuous and discrete distributions have been added to the new
scipy.stats.sampling submodule. Implementations of a C library
UNU.RAN <http://statmath.wu.ac.at/software/unuran/>_ are used for
performance. The generators added are:
- TransformedDensityRejection
- DiscreteAliasUrn
- NumericalInversePolynomial
- DiscreteGuideTable
- SimpleRatioUniforms
The binned_statistic set of functions now have improved performance for
the std, min, max, and median statistic calculations.
somersd and _tau_b now have faster Pythran-based implementations.
Some general efficiency improvements to handling of nan values in
several stats functions.
Added the Tukey-Kramer test as scipy.stats.tukey_hsd.
Improved performance of scipy.stats.argus rvs method.
Added the parameter keepdims to scipy.stats.variation and prevent the
undesirable return of a masked array from the function in some cases.
permutation_test performs an exact or randomized permutation test of a
given statistic on provided data.
Deprecated features
Clear split between public and private API
SciPy has always documented what its public API consisted of in
:ref:its API reference docs <scipy-api>,
however there never was a clear split between public and
private namespaces in the code base. In this release, all namespaces that were
private but happened to miss underscores in their names have been deprecated.
These include (as examples, there are many more):
scipy.signal.splinescipy.ndimage.filtersscipy.ndimage.fourierscipy.ndimage.measurementsscipy.ndimage.morphologyscipy.ndimage.interpolationscipy.sparse.linalg.solvescipy.sparse.linalg.eigenscipy.sparse.linalg.isolve
All functions and other objects in these namespaces that were meant to be
public are accessible from their respective public namespace (e.g.
scipy.signal). The design principle is that any public object must be
accessible from a single namespace only; there are a few exceptions, mostly for
historical reasons (e.g., stats and stats.distributions overlap).
For other libraries aiming to provide a SciPy-compatible API, it is now
unambiguous what namespace structure to follow. See
gh-14360 <https://github.com/scipy/scipy/issues/14360>_ for more details.
Other deprecations
NumericalInverseHermite has been deprecated from scipy.stats and moved
to the scipy.stats.sampling submodule. It now uses the C implementation of
the UNU.RAN library so the result of methods like ppf may vary slightly.
Parameter tol has been deprecated and renamed to u_resolution. The
parameter max_intervals has also been deprecated and will be removed in a
future release of SciPy.
Backwards incompatible changes
- SciPy has raised the minimum compiler versions to GCC 6.3 on linux and
VS2019 on windows. In particular, this means that SciPy may now use C99 and
C++14 features. For more details see
here <https://docs.scipy.org/doc/scipy/reference/dev/toolchain.html>_. - The result for empty bins for
scipy.stats.binned_statisticwith the builtin'std'metric is nownan, for consistency withnp.std. - The function
scipy.spatial.distance.wminkowskihas been removed. To achieve the same results as before, please use theminkowskidistance function with the (optional)w=keyword-argument for the given weight.
Other changes
Some Fortran 77 code was modernized to be compatible with NAG's nagfor Fortran
compiler (see, e.g., PR 13229 <https://github.com/scipy/scipy/pull/13229>_).
threadpoolctl may now be used by our test suite to substantially improve
the efficiency of parallel test suite runs.
Authors
- @endolith
- adamadanandy +
- akeemlh +
- Anton Akhmerov
- Marvin Albert +
- alegresor +
- Andrew Annex +
- Pantelis Antonoudiou +
- Ross Barnowski +
- Christoph Baumgarten
- Stephen Becker +
- Nickolai Belakovski
- Peter Bell
- berberto +
- Georgii Bocharov +
- Evgeni Burovski
- Matthias Bussonnier
- CJ Carey
- Justin Charlong +
- Hood Chatham +
- Dennis Collaris +
- David Cottrell +
- cruyffturn +
- da-woods +
- Anirudh Dagar
- Tiger Du +
- Thomas Duvernay
- Dani El-Ayyass +
- Castedo Ellerman +
- Donnie Erb +
- Andreas Esders-Kopecky +
- Livio F +
- Isuru Fernando
- Evelyn Fitzgerald +
- Sara Fridovich-Keil +
- Mark E Fuller +
- Ralf Gommers
- Kevin Richard Green +
- guiweber +
- Nitish Gupta +
- h-vetinari
- Matt Haberland
- J. Hariharan +
- Charles Harris
- Jonathan Helgert +
- Trever Hines
- Nadav Horesh
- Ian Hunt-Isaak +
- ich +
- Itrimel +
- Jan-Hendrik Müller +
- Jebby993 +
- Yikun Jiang +
- Evan W Jones +
- Nathaniel Jones +
- Jeffrey Kelling +
- Malik Idrees Hasan Khan +
- Paul Kienzle
- Sergey B Kirpichev
- Kadatatlu Kishore +
- Andrew Knyazev
- Ravin Kumar +
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Tim Leslie
- lezcano +
- Xingyu Liu
- Christian Lorentzen
- Lorenzo +
- Smit Lunagariya +
- Lv101Magikarp +
- Yair M +
- Cong Ma
- Lorenzo Maffioli +
- majiang +
- Brian McFee +
- Nicholas McKibben
- John Speed Meyers +
- millivolt9 +
- Jarrod Millman
- Harsh Mishra +
- Boaz Mohar +
- naelsondouglas +
- Andrew Nelson
- Nico Schlömer
- Thomas Nowotny +
- nullptr +
- Teddy Ort +
- Nick Papior
- ParticularMiner +
- Dima Pasechnik
- Tirth Patel
- Matti Picus
- Ilhan Polat
- Adrian Price-Whelan +
- Quentin Barthélemy +
- Sundar R +
- Judah Rand +
- Tyler Reddy
- Renal-Of-Loon +
- Frederic Renner +
- Pamphile Roy
- Bharath Saiguhan +
- Atsushi Sakai
- Eric Schanet +
- Sebastian Wallkötter
- serge-sans-paille
- Reshama Shaikh +
- Namami Shanker
- siddhantwahal +
- Walter Simson +
- Gagandeep Singh +
- Leo C. Stein +
- Albert Steppi
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Masayuki Takagi +
- Mike Taves
- Ben Thompson +
- Bas van Beek
- Jacob Vanderplas
- Dhruv Vats +
- H. Vetinari +
- Thomas Viehmann +
- Pauli Virtanen
- Vlad +
- Arthur Volant
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Haoyin Xu +
- Rory Yorke
- Egor Zemlyanoy
- Gang Zhao +
- 赵丰 (Zhao Feng) +
A total of 139 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.
- Python
Published by tylerjereddy over 4 years ago
scipy - SciPy 1.8.0rc4
SciPy 1.8.0 Release Notes
Note: SciPy 1.8.0 is not released yet!
SciPy 1.8.0 is the culmination of 6 months of hard work. It contains
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.8.x branch, and on adding new features on the master branch.
This release requires Python 3.8+ and NumPy 1.17.3 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A sparse array API has been added for early testing and feedback; this work is ongoing, and users should expect minor API refinements over the next few releases.
- The sparse SVD library PROPACK is now vendored with SciPy, and an interface
is exposed via
scipy.sparse.svdswithsolver='PROPACK'. It is currently default-off due to potential issues on Windows that we aim to resolve in the next release, but can be optionally enabled at runtime for friendly testing with an environment variable setting ofUSE_PROPACK=1. - A new
scipy.stats.samplingsubmodule that leverages theUNU.RANC library to sample from arbitrary univariate non-uniform continuous and discrete distributions - All namespaces that were private but happened to miss underscores in their names have been deprecated.
New features
scipy.fft improvements
Added an orthogonalize=None parameter to the real transforms in scipy.fft
which controls whether the modified definition of DCT/DST is used without
changing the overall scaling.
scipy.fft backend registration is now smoother, operating with a single
registration call and no longer requiring a context manager.
scipy.integrate improvements
scipy.integrate.quad_vec introduces a new optional keyword-only argument,
args. args takes in a tuple of extra arguments if any (default is
args=()), which is then internally used to pass into the callable function
(needing these extra arguments) which we wish to integrate.
scipy.interpolate improvements
scipy.interpolate.BSpline has a new method, design_matrix, which
constructs a design matrix of b-splines in the sparse CSR format.
A new method from_cubic in BSpline class allows to convert a
CubicSpline object to BSpline object.
scipy.linalg improvements
scipy.linalg gained three new public array structure investigation functions.
scipy.linalg.bandwidth returns information about the bandedness of an array
and can be used to test for triangular structure discovery, while
scipy.linalg.issymmetric and scipy.linalg.ishermitian test the array for
exact and approximate symmetric/Hermitian structure.
scipy.optimize improvements
scipy.optimize.check_grad introduces two new optional keyword only arguments,
direction and seed. direction can take values, 'all' (default),
in which case all the one hot direction vectors will be used for verifying
the input analytical gradient function and 'random', in which case a
random direction vector will be used for the same purpose. seed
(default is None) can be used for reproducing the return value of
check_grad function. It will be used only when direction='random'.
The scipy.optimize.minimize TNC method has been rewritten to use Cython
bindings. This also fixes an issue with the callback altering the state of the
optimization.
Added optional parameters target_accept_rate and stepwise_factor for
adapative step size adjustment in basinhopping.
The epsilon argument to approx_fprime is now optional so that it may
have a default value consistent with most other functions in scipy.optimize.
scipy.signal improvements
Add analog argument, default False, to zpk2sos, and add new pairing
option 'minimal' to construct analog and minimal discrete SOS arrays.
tf2sos uses zpk2sos; add analog argument here as well, and pass it on
to zpk2sos.
savgol_coeffs and savgol_filter now work for even window lengths.
Added the Chirp Z-transform and Zoom FFT available as scipy.signal.CZT and
scipy.signal.ZoomFFT.
scipy.sparse improvements
An array API has been added for early testing and feedback; this
work is ongoing, and users should expect minor API refinements over
the next few releases. Please refer to the scipy.sparse
docstring for more information.
maximum_flow introduces optional keyword only argument, method
which accepts either, 'edmonds-karp' (Edmonds Karp algorithm) or
'dinic' (Dinic's algorithm). Moreover, 'dinic' is used as default
value for method which means that Dinic's algorithm is used for computing
maximum flow unless specified. See, the comparison between the supported
algorithms in
this comment <https://github.com/scipy/scipy/pull/14358#issue-684212523>_.
Parameters atol, btol now default to 1e-6 in
scipy.sparse.linalg.lsmr to match with default values in
scipy.sparse.linalg.lsqr.
Add the Transpose-Free Quasi-Minimal Residual algorithm (TFQMR) for general
nonsingular non-Hermitian linear systems in scipy.sparse.linalg.tfqmr.
The sparse SVD library PROPACK is now vendored with SciPy, and an interface is
exposed via scipy.sparse.svds with solver='PROPACK'. For some problems,
this may be faster and/or more accurate than the default, ARPACK. PROPACK
functionality is currently opt-in--you must specify USE_PROPACK=1 at
runtime to use it due to potential issues on Windows
that we aim to resolve in the next release.
sparse.linalg iterative solvers now have a nonzero initial guess option,
which may be specified as x0 = 'Mb'.
The trace method has been added for sparse matrices.
scipy.spatial improvements
scipy.spatial.transform.Rotation now supports item assignment and has a new
concatenate method.
Add scipy.spatial.distance.kulczynski1 in favour of
scipy.spatial.distance.kulsinski which will be deprecated in the next
release.
scipy.spatial.distance.minkowski now also supports 0<p<1.
scipy.special improvements
The new function scipy.special.log_expit computes the logarithm of the
logistic sigmoid function. The function is formulated to provide accurate
results for large positive and negative inputs, so it avoids the problems
that would occur in the naive implementation log(expit(x)).
A suite of five new functions for elliptic integrals:
scipy.special.ellipr{c,d,f,g,j}. These are the
Carlson symmetric elliptic integrals <https://dlmf.nist.gov/19.16>_, which
have computational advantages over the classical Legendre integrals. Previous
versions included some elliptic integrals from the Cephes library
(scipy.special.ellip{k,km1,kinc,e,einc}) but was missing the integral of
third kind (Legendre's Pi), which can be evaluated using the new Carlson
functions. The new Carlson elliptic integral functions can be evaluated in the
complex plane, whereas the Cephes library's functions are only defined for
real inputs.
Several defects in scipy.special.hyp2f1 have been corrected. Approximately
correct values are now returned for z near exp(+-i*pi/3), fixing
#8054 <https://github.com/scipy/scipy/issues/8054>. Evaluation for such z
is now calculated through a series derived by
López and Temme (2013) <https://arxiv.org/abs/1306.2046> that converges in
these regions. In addition, degenerate cases with one or more of a, b,
and/or c a non-positive integer are now handled in a manner consistent with
mpmath's hyp2f1 implementation <https://mpmath.org/doc/current/functions/hypergeometric.html>,
which fixes #7340 <https://github.com/scipy/scipy/issues/7340>. These fixes
were made as part of an effort to rewrite the Fortran 77 implementation of
hyp2f1 in Cython piece by piece. This rewriting is now roughly 50% complete.
scipy.stats improvements
scipy.stats.qmc.LatinHypercube introduces two new optional keyword-only
arguments, optimization and strength. optimization is either
None or random-cd. In the latter, random permutations are performed to
improve the centered discrepancy. strength is either 1 or 2. 1 corresponds
to the classical LHS while 2 has better sub-projection properties. This
construction is referred to as an orthogonal array based LHS of strength 2.
In both cases, the output is still a LHS.
scipy.stats.qmc.Halton is faster as the underlying Van der Corput sequence
was ported to Cython.
The alternative parameter was added to the kendalltau and somersd
functions to allow one-sided hypothesis testing. Similarly, the masked
versions of skewtest, kurtosistest, ttest_1samp, ttest_ind,
and ttest_rel now also have an alternative parameter.
Add scipy.stats.gzscore to calculate the geometrical z score.
Random variate generators to sample from arbitrary univariate non-uniform
continuous and discrete distributions have been added to the new
scipy.stats.sampling submodule. Implementations of a C library
UNU.RAN <http://statmath.wu.ac.at/software/unuran/>_ are used for
performance. The generators added are:
- TransformedDensityRejection
- DiscreteAliasUrn
- NumericalInversePolynomial
- DiscreteGuideTable
- SimpleRatioUniforms
The binned_statistic set of functions now have improved performance for
the std, min, max, and median statistic calculations.
somersd and _tau_b now have faster Pythran-based implementations.
Some general efficiency improvements to handling of nan values in
several stats functions.
Added the Tukey-Kramer test as scipy.stats.tukey_hsd.
Improved performance of scipy.stats.argus rvs method.
Added the parameter keepdims to scipy.stats.variation and prevent the
undesirable return of a masked array from the function in some cases.
permutation_test performs an exact or randomized permutation test of a
given statistic on provided data.
Deprecated features
Clear split between public and private API
SciPy has always documented what its public API consisted of in
:ref:its API reference docs <scipy-api>,
however there never was a clear split between public and
private namespaces in the code base. In this release, all namespaces that were
private but happened to miss underscores in their names have been deprecated.
These include (as examples, there are many more):
scipy.signal.splinescipy.ndimage.filtersscipy.ndimage.fourierscipy.ndimage.measurementsscipy.ndimage.morphologyscipy.ndimage.interpolationscipy.sparse.linalg.solvescipy.sparse.linalg.eigenscipy.sparse.linalg.isolve
All functions and other objects in these namespaces that were meant to be
public are accessible from their respective public namespace (e.g.
scipy.signal). The design principle is that any public object must be
accessible from a single namespace only; there are a few exceptions, mostly for
historical reasons (e.g., stats and stats.distributions overlap).
For other libraries aiming to provide a SciPy-compatible API, it is now
unambiguous what namespace structure to follow. See
gh-14360 <https://github.com/scipy/scipy/issues/14360>_ for more details.
Other deprecations
NumericalInverseHermite has been deprecated from scipy.stats and moved
to the scipy.stats.sampling submodule. It now uses the C implementation of
the UNU.RAN library so the result of methods like ppf may vary slightly.
Parameter tol has been deprecated and renamed to u_resolution. The
parameter max_intervals has also been deprecated and will be removed in a
future release of SciPy.
Backwards incompatible changes
- SciPy has raised the minimum compiler versions to GCC 6.3 on linux and
VS2019 on windows. In particular, this means that SciPy may now use C99 and
C++14 features. For more details see
here <https://docs.scipy.org/doc/scipy/reference/dev/toolchain.html>_. - The result for empty bins for
scipy.stats.binned_statisticwith the builtin'std'metric is nownan, for consistency withnp.std. - The function
scipy.spatial.distance.wminkowskihas been removed. To achieve the same results as before, please use theminkowskidistance function with the (optional)w=keyword-argument for the given weight.
Other changes
Some Fortran 77 code was modernized to be compatible with NAG's nagfor Fortran
compiler (see, e.g., PR 13229 <https://github.com/scipy/scipy/pull/13229>_).
threadpoolctl may now be used by our test suite to substantially improve
the efficiency of parallel test suite runs.
Authors
- @endolith
- adamadanandy +
- akeemlh +
- Anton Akhmerov
- Marvin Albert +
- alegresor +
- Andrew Annex +
- Pantelis Antonoudiou +
- Ross Barnowski +
- Christoph Baumgarten
- Stephen Becker +
- Nickolai Belakovski
- Peter Bell
- berberto +
- Georgii Bocharov +
- Evgeni Burovski
- Matthias Bussonnier
- CJ Carey
- Justin Charlong +
- Hood Chatham +
- Dennis Collaris +
- David Cottrell +
- cruyffturn +
- da-woods +
- Anirudh Dagar
- Tiger Du +
- Thomas Duvernay
- Dani El-Ayyass +
- Castedo Ellerman +
- Donnie Erb +
- Andreas Esders-Kopecky +
- Livio F +
- Isuru Fernando
- Evelyn Fitzgerald +
- Sara Fridovich-Keil +
- Mark E Fuller +
- Ralf Gommers
- Kevin Richard Green +
- guiweber +
- Nitish Gupta +
- h-vetinari
- Matt Haberland
- J. Hariharan +
- Charles Harris
- Jonathan Helgert +
- Trever Hines
- Nadav Horesh
- Ian Hunt-Isaak +
- ich +
- Itrimel +
- Jan-Hendrik Müller +
- Jebby993 +
- Yikun Jiang +
- Evan W Jones +
- Nathaniel Jones +
- Jeffrey Kelling +
- Malik Idrees Hasan Khan +
- Paul Kienzle
- Sergey B Kirpichev
- Kadatatlu Kishore +
- Andrew Knyazev
- Ravin Kumar +
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Tim Leslie
- lezcano +
- Xingyu Liu
- Christian Lorentzen
- Lorenzo +
- Smit Lunagariya +
- Lv101Magikarp +
- Yair M +
- Cong Ma
- Lorenzo Maffioli +
- majiang +
- Brian McFee +
- Nicholas McKibben
- John Speed Meyers +
- millivolt9 +
- Jarrod Millman
- Harsh Mishra +
- Boaz Mohar +
- naelsondouglas +
- Andrew Nelson
- Nico Schlömer
- Thomas Nowotny +
- nullptr +
- Teddy Ort +
- Nick Papior
- ParticularMiner +
- Dima Pasechnik
- Tirth Patel
- Matti Picus
- Ilhan Polat
- Adrian Price-Whelan +
- Quentin Barthélemy +
- Sundar R +
- Judah Rand +
- Tyler Reddy
- Renal-Of-Loon +
- Frederic Renner +
- Pamphile Roy
- Bharath Saiguhan +
- Atsushi Sakai
- Eric Schanet +
- Sebastian Wallkötter
- serge-sans-paille
- Reshama Shaikh +
- Namami Shanker
- siddhantwahal +
- Walter Simson +
- Gagandeep Singh +
- Leo C. Stein +
- Albert Steppi
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Masayuki Takagi +
- Mike Taves
- Ben Thompson +
- Bas van Beek
- Jacob Vanderplas
- Dhruv Vats +
- H. Vetinari +
- Thomas Viehmann +
- Pauli Virtanen
- Vlad +
- Arthur Volant
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Haoyin Xu +
- Rory Yorke
- Egor Zemlyanoy
- Gang Zhao +
- 赵丰 (Zhao Feng) +
A total of 139 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.
- Python
Published by tylerjereddy over 4 years ago
scipy - SciPy 1.8.0rc3
SciPy 1.8.0 Release Notes
Note: SciPy 1.8.0 is not released yet!
SciPy 1.8.0 is the culmination of 6 months of hard work. It contains
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.8.x branch, and on adding new features on the master branch.
This release requires Python 3.8+ and NumPy 1.17.3 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A sparse array API has been added for early testing and feedback; this work is ongoing, and users should expect minor API refinements over the next few releases.
- The sparse SVD library PROPACK is now vendored with SciPy, and an interface
is exposed via
scipy.sparse.svdswithsolver='PROPACK'. It is currently default-off due to potential issues on Windows that we aim to resolve in the next release, but can be optionally enabled at runtime for friendly testing with an environment variable setting ofUSE_PROPACK=1. - A new
scipy.stats.samplingsubmodule that leverages theUNU.RANC library to sample from arbitrary univariate non-uniform continuous and discrete distributions - All namespaces that were private but happened to miss underscores in their names have been deprecated.
New features
scipy.fft improvements
Added an orthogonalize=None parameter to the real transforms in scipy.fft
which controls whether the modified definition of DCT/DST is used without
changing the overall scaling.
scipy.fft backend registration is now smoother, operating with a single
registration call and no longer requiring a context manager.
scipy.integrate improvements
scipy.integrate.quad_vec introduces a new optional keyword-only argument,
args. args takes in a tuple of extra arguments if any (default is
args=()), which is then internally used to pass into the callable function
(needing these extra arguments) which we wish to integrate.
scipy.interpolate improvements
scipy.interpolate.BSpline has a new method, design_matrix, which
constructs a design matrix of b-splines in the sparse CSR format.
A new method from_cubic in BSpline class allows to convert a
CubicSpline object to BSpline object.
scipy.linalg improvements
scipy.linalg gained three new public array structure investigation functions.
scipy.linalg.bandwidth returns information about the bandedness of an array
and can be used to test for triangular structure discovery, while
scipy.linalg.issymmetric and scipy.linalg.ishermitian test the array for
exact and approximate symmetric/Hermitian structure.
scipy.optimize improvements
scipy.optimize.check_grad introduces two new optional keyword only arguments,
direction and seed. direction can take values, 'all' (default),
in which case all the one hot direction vectors will be used for verifying
the input analytical gradient function and 'random', in which case a
random direction vector will be used for the same purpose. seed
(default is None) can be used for reproducing the return value of
check_grad function. It will be used only when direction='random'.
The scipy.optimize.minimize TNC method has been rewritten to use Cython
bindings. This also fixes an issue with the callback altering the state of the
optimization.
Added optional parameters target_accept_rate and stepwise_factor for
adapative step size adjustment in basinhopping.
The epsilon argument to approx_fprime is now optional so that it may
have a default value consistent with most other functions in scipy.optimize.
scipy.signal improvements
Add analog argument, default False, to zpk2sos, and add new pairing
option 'minimal' to construct analog and minimal discrete SOS arrays.
tf2sos uses zpk2sos; add analog argument here as well, and pass it on
to zpk2sos.
savgol_coeffs and savgol_filter now work for even window lengths.
Added the Chirp Z-transform and Zoom FFT available as scipy.signal.CZT and
scipy.signal.ZoomFFT.
scipy.sparse improvements
An array API has been added for early testing and feedback; this
work is ongoing, and users should expect minor API refinements over
the next few releases. Please refer to the scipy.sparse
docstring for more information.
maximum_flow introduces optional keyword only argument, method
which accepts either, 'edmonds-karp' (Edmonds Karp algorithm) or
'dinic' (Dinic's algorithm). Moreover, 'dinic' is used as default
value for method which means that Dinic's algorithm is used for computing
maximum flow unless specified. See, the comparison between the supported
algorithms in this comment.
Parameters atol, btol now default to 1e-6 in
scipy.sparse.linalg.lsmr to match with default values in
scipy.sparse.linalg.lsqr.
Add the Transpose-Free Quasi-Minimal Residual algorithm (TFQMR) for general
nonsingular non-Hermitian linear systems in scipy.sparse.linalg.tfqmr.
The sparse SVD library PROPACK is now vendored with SciPy, and an interface is
exposed via scipy.sparse.svds with solver='PROPACK'. For some problems,
this may be faster and/or more accurate than the default, ARPACK. PROPACK
functionality is currently opt-in--you must specify USE_PROPACK=1 at
runtime to use it due to potential issues on Windows
that we aim to resolve in the next release.
sparse.linalg iterative solvers now have a nonzero initial guess option,
which may be specified as x0 = 'Mb'.
The trace method has been added for sparse matrices.
scipy.spatial improvements
scipy.spatial.transform.Rotation now supports item assignment and has a new
concatenate method.
Add scipy.spatial.distance.kulczynski1 in favour of
scipy.spatial.distance.kulsinski which will be deprecated in the next
release.
scipy.spatial.distance.minkowski now also supports 0<p<1.
scipy.special improvements
The new function scipy.special.log_expit computes the logarithm of the
logistic sigmoid function. The function is formulated to provide accurate
results for large positive and negative inputs, so it avoids the problems
that would occur in the naive implementation log(expit(x)).
A suite of five new functions for elliptic integrals:
scipy.special.ellipr{c,d,f,g,j}. These are the
Carlson symmetric elliptic integrals <https://dlmf.nist.gov/19.16>_, which
have computational advantages over the classical Legendre integrals. Previous
versions included some elliptic integrals from the Cephes library
(scipy.special.ellip{k,km1,kinc,e,einc}) but was missing the integral of
third kind (Legendre's Pi), which can be evaluated using the new Carlson
functions. The new Carlson elliptic integral functions can be evaluated in the
complex plane, whereas the Cephes library's functions are only defined for
real inputs.
Several defects in scipy.special.hyp2f1 have been corrected. Approximately
correct values are now returned for z near exp(+-i*pi/3), fixing
#8054 <https://github.com/scipy/scipy/issues/8054>. Evaluation for such z
is now calculated through a series derived by
López and Temme (2013) <https://arxiv.org/abs/1306.2046> that converges in
these regions. In addition, degenerate cases with one or more of a, b,
and/or c a non-positive integer are now handled in a manner consistent with
mpmath's hyp2f1 implementation <https://mpmath.org/doc/current/functions/hypergeometric.html>,
which fixes #7340 <https://github.com/scipy/scipy/issues/7340>. These fixes
were made as part of an effort to rewrite the Fortran 77 implementation of
hyp2f1 in Cython piece by piece. This rewriting is now roughly 50% complete.
scipy.stats improvements
scipy.stats.qmc.LatinHypercube introduces two new optional keyword-only
arguments, optimization and strength. optimization is either
None or random-cd. In the latter, random permutations are performed to
improve the centered discrepancy. strength is either 1 or 2. 1 corresponds
to the classical LHS while 2 has better sub-projection properties. This
construction is referred to as an orthogonal array based LHS of strength 2.
In both cases, the output is still a LHS.
scipy.stats.qmc.Halton is faster as the underlying Van der Corput sequence
was ported to Cython.
The alternative parameter was added to the kendalltau and somersd
functions to allow one-sided hypothesis testing. Similarly, the masked
versions of skewtest, kurtosistest, ttest_1samp, ttest_ind,
and ttest_rel now also have an alternative parameter.
Add scipy.stats.gzscore to calculate the geometrical z score.
Random variate generators to sample from arbitrary univariate non-uniform
continuous and discrete distributions have been added to the new
scipy.stats.sampling submodule. Implementations of a C library
UNU.RAN <http://statmath.wu.ac.at/software/unuran/>_ are used for
performance. The generators added are:
- TransformedDensityRejection
- DiscreteAliasUrn
- NumericalInversePolynomial
- DiscreteGuideTable
- SimpleRatioUniforms
The binned_statistic set of functions now have improved performance for
the std, min, max, and median statistic calculations.
somersd and _tau_b now have faster Pythran-based implementations.
Some general efficiency improvements to handling of nan values in
several stats functions.
Added the Tukey-Kramer test as scipy.stats.tukey_hsd.
Improved performance of scipy.stats.argus rvs method.
Added the parameter keepdims to scipy.stats.variation and prevent the
undesirable return of a masked array from the function in some cases.
permutation_test performs an exact or randomized permutation test of a
given statistic on provided data.
Deprecated features
Clear split between public and private API
SciPy has always documented what its public API consisted of in
:ref:its API reference docs <scipy-api>,
however there never was a clear split between public and
private namespaces in the code base. In this release, all namespaces that were
private but happened to miss underscores in their names have been deprecated.
These include (as examples, there are many more):
scipy.signal.splinescipy.ndimage.filtersscipy.ndimage.fourierscipy.ndimage.measurementsscipy.ndimage.morphologyscipy.ndimage.interpolationscipy.sparse.linalg.solvescipy.sparse.linalg.eigenscipy.sparse.linalg.isolve
All functions and other objects in these namespaces that were meant to be
public are accessible from their respective public namespace (e.g.
scipy.signal). The design principle is that any public object must be
accessible from a single namespace only; there are a few exceptions, mostly for
historical reasons (e.g., stats and stats.distributions overlap).
For other libraries aiming to provide a SciPy-compatible API, it is now
unambiguous what namespace structure to follow. See
gh-14360 <https://github.com/scipy/scipy/issues/14360>_ for more details.
Other deprecations
NumericalInverseHermite has been deprecated from scipy.stats and moved
to the scipy.stats.sampling submodule. It now uses the C implementation of
the UNU.RAN library so the result of methods like ppf may vary slightly.
Parameter tol has been deprecated and renamed to u_resolution. The
parameter max_intervals has also been deprecated and will be removed in a
future release of SciPy.
Backwards incompatible changes
- SciPy has raised the minimum compiler versions to GCC 6.3 on linux and
VS2019 on windows. In particular, this means that SciPy may now use C99 and
C++14 features. For more details see
here <https://docs.scipy.org/doc/scipy/reference/dev/toolchain.html>_. - The result for empty bins for
scipy.stats.binned_statisticwith the builtin'std'metric is nownan, for consistency withnp.std. - The function
scipy.spatial.distance.wminkowskihas been removed. To achieve the same results as before, please use theminkowskidistance function with the (optional)w=keyword-argument for the given weight.
Other changes
Some Fortran 77 code was modernized to be compatible with NAG's nagfor Fortran
compiler (see, e.g., PR 13229 <https://github.com/scipy/scipy/pull/13229>_).
threadpoolctl may now be used by our test suite to substantially improve
the efficiency of parallel test suite runs.
Authors
- @endolith
- adamadanandy +
- akeemlh +
- Anton Akhmerov
- Marvin Albert +
- alegresor +
- Andrew Annex +
- Pantelis Antonoudiou +
- Ross Barnowski +
- Christoph Baumgarten
- Stephen Becker +
- Nickolai Belakovski
- Peter Bell
- berberto +
- Georgii Bocharov +
- Evgeni Burovski
- Matthias Bussonnier
- CJ Carey
- Justin Charlong +
- Hood Chatham +
- Dennis Collaris +
- David Cottrell +
- cruyffturn +
- da-woods +
- Anirudh Dagar
- Tiger Du +
- Thomas Duvernay
- Dani El-Ayyass +
- Castedo Ellerman +
- Donnie Erb +
- Andreas Esders-Kopecky +
- Livio F +
- Isuru Fernando
- Evelyn Fitzgerald +
- Sara Fridovich-Keil +
- Mark E Fuller +
- Ralf Gommers
- Kevin Richard Green +
- guiweber +
- Nitish Gupta +
- h-vetinari
- Matt Haberland
- J. Hariharan +
- Charles Harris
- Jonathan Helgert +
- Trever Hines
- Nadav Horesh
- Ian Hunt-Isaak +
- ich +
- Itrimel +
- Jan-Hendrik Müller +
- Jebby993 +
- Yikun Jiang +
- Evan W Jones +
- Nathaniel Jones +
- Jeffrey Kelling +
- Malik Idrees Hasan Khan +
- Paul Kienzle
- Sergey B Kirpichev
- Kadatatlu Kishore +
- Andrew Knyazev
- Ravin Kumar +
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Tim Leslie
- lezcano +
- Xingyu Liu
- Christian Lorentzen
- Lorenzo +
- Smit Lunagariya +
- Lv101Magikarp +
- Yair M +
- Cong Ma
- Lorenzo Maffioli +
- majiang +
- Brian McFee +
- Nicholas McKibben
- John Speed Meyers +
- millivolt9 +
- Jarrod Millman
- Harsh Mishra +
- Boaz Mohar +
- naelsondouglas +
- Andrew Nelson
- Nico Schlömer
- Thomas Nowotny +
- nullptr +
- Teddy Ort +
- Nick Papior
- ParticularMiner +
- Dima Pasechnik
- Tirth Patel
- Matti Picus
- Ilhan Polat
- Adrian Price-Whelan +
- Quentin Barthélemy +
- Sundar R +
- Judah Rand +
- Tyler Reddy
- Renal-Of-Loon +
- Frederic Renner +
- Pamphile Roy
- Bharath Saiguhan +
- Atsushi Sakai
- Eric Schanet +
- Sebastian Wallkötter
- serge-sans-paille
- Reshama Shaikh +
- Namami Shanker
- siddhantwahal +
- Walter Simson +
- Gagandeep Singh +
- Leo C. Stein +
- Albert Steppi
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Masayuki Takagi +
- Mike Taves
- Ben Thompson +
- Bas van Beek
- Jacob Vanderplas
- Dhruv Vats +
- H. Vetinari +
- Thomas Viehmann +
- Pauli Virtanen
- Vlad +
- Arthur Volant
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Haoyin Xu +
- Rory Yorke
- Egor Zemlyanoy
- Gang Zhao +
- 赵丰 (Zhao Feng) +
A total of 139 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.
- Python
Published by tylerjereddy over 4 years ago
scipy - SciPy 1.8.0rc2
SciPy 1.8.0 Release Notes
Note: SciPy 1.8.0 is not released yet!
SciPy 1.8.0 is the culmination of 6 months of hard work. It contains
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.8.x branch, and on adding new features on the master branch.
This release requires Python 3.8+ and NumPy 1.17.3 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A sparse array API has been added for early testing and feedback; this work is ongoing, and users should expect minor API refinements over the next few releases.
- The sparse SVD library PROPACK is now vendored with SciPy, and an interface
is exposed via
scipy.sparse.svdswithsolver='PROPACK'. - A new
scipy.stats.samplingsubmodule that leverages theUNU.RANC library to sample from arbitrary univariate non-uniform continuous and discrete distributions - All namespaces that were private but happened to miss underscores in their names have been deprecated.
New features
scipy.fft improvements
Added an orthogonalize=None parameter to the real transforms in scipy.fft
which controls whether the modified definition of DCT/DST is used without
changing the overall scaling.
scipy.fft backend registration is now smoother, operating with a single
registration call and no longer requiring a context manager.
scipy.integrate improvements
scipy.integrate.quad_vec introduces a new optional keyword-only argument,
args. args takes in a tuple of extra arguments if any (default is
args=()), which is then internally used to pass into the callable function
(needing these extra arguments) which we wish to integrate.
scipy.interpolate improvements
scipy.interpolate.BSpline has a new method, design_matrix, which
constructs a design matrix of b-splines in the sparse CSR format.
A new method from_cubic in BSpline class allows to convert a
CubicSpline object to BSpline object.
scipy.linalg improvements
scipy.linalg gained three new public array structure investigation functions.
scipy.linalg.bandwidth returns information about the bandedness of an array
and can be used to test for triangular structure discovery, while
scipy.linalg.issymmetric and scipy.linalg.ishermitian test the array for
exact and approximate symmetric/Hermitian structure.
scipy.optimize improvements
scipy.optimize.check_grad introduces two new optional keyword only arguments,
direction and seed. direction can take values, 'all' (default),
in which case all the one hot direction vectors will be used for verifying
the input analytical gradient function and 'random', in which case a
random direction vector will be used for the same purpose. seed
(default is None) can be used for reproducing the return value of
check_grad function. It will be used only when direction='random'.
The scipy.optimize.minimize TNC method has been rewritten to use Cython
bindings. This also fixes an issue with the callback altering the state of the
optimization.
Added optional parameters target_accept_rate and stepwise_factor for
adapative step size adjustment in basinhopping.
The epsilon argument to approx_fprime is now optional so that it may
have a default value consistent with most other functions in scipy.optimize.
scipy.signal improvements
Add analog argument, default False, to zpk2sos, and add new pairing
option 'minimal' to construct analog and minimal discrete SOS arrays.
tf2sos uses zpk2sos; add analog argument here as well, and pass it on
to zpk2sos.
savgol_coeffs and savgol_filter now work for even window lengths.
Added the Chirp Z-transform and Zoom FFT available as scipy.signal.CZT and
scipy.signal.ZoomFFT.
scipy.sparse improvements
An array API has been added for early testing and feedback; this
work is ongoing, and users should expect minor API refinements over
the next few releases. Please refer to the scipy.sparse
docstring for more information.
maximum_flow introduces optional keyword only argument, method
which accepts either, 'edmonds-karp' (Edmonds Karp algorithm) or
'dinic' (Dinic's algorithm). Moreover, 'dinic' is used as default
value for method which means that Dinic's algorithm is used for computing
maximum flow unless specified. See, the comparison between the supported
algorithms in
this comment <https://github.com/scipy/scipy/pull/14358#issue-684212523>_.
Parameters atol, btol now default to 1e-6 in
scipy.sparse.linalg.lsmr to match with default values in
scipy.sparse.linalg.lsqr.
Add the Transpose-Free Quasi-Minimal Residual algorithm (TFQMR) for general
nonsingular non-Hermitian linear systems in scipy.sparse.linalg.tfqmr.
The sparse SVD library PROPACK is now vendored with SciPy, and an interface is
exposed via scipy.sparse.svds with solver='PROPACK'. For some problems,
this may be faster and/or more accurate than the default, ARPACK.
sparse.linalg iterative solvers now have a nonzero initial guess option,
which may be specified as x0 = 'Mb'.
The trace method has been added for sparse matrices.
scipy.spatial improvements
scipy.spatial.transform.Rotation now supports item assignment and has a new
concatenate method.
Add scipy.spatial.distance.kulczynski1 in favour of
scipy.spatial.distance.kulsinski which will be deprecated in the next
release.
scipy.spatial.distance.minkowski now also supports 0<p<1.
scipy.special improvements
The new function scipy.special.log_expit computes the logarithm of the
logistic sigmoid function. The function is formulated to provide accurate
results for large positive and negative inputs, so it avoids the problems
that would occur in the naive implementation log(expit(x)).
A suite of five new functions for elliptic integrals:
scipy.special.ellipr{c,d,f,g,j}. These are the
Carlson symmetric elliptic integrals <https://dlmf.nist.gov/19.16>_, which
have computational advantages over the classical Legendre integrals. Previous
versions included some elliptic integrals from the Cephes library
(scipy.special.ellip{k,km1,kinc,e,einc}) but was missing the integral of
third kind (Legendre's Pi), which can be evaluated using the new Carlson
functions. The new Carlson elliptic integral functions can be evaluated in the
complex plane, whereas the Cephes library's functions are only defined for
real inputs.
Several defects in scipy.special.hyp2f1 have been corrected. Approximately
correct values are now returned for z near exp(+-i*pi/3), fixing
#8054 <https://github.com/scipy/scipy/issues/8054>. Evaluation for such z
is now calculated through a series derived by
López and Temme (2013) <https://arxiv.org/abs/1306.2046> that converges in
these regions. In addition, degenerate cases with one or more of a, b,
and/or c a non-positive integer are now handled in a manner consistent with
mpmath's hyp2f1 implementation <https://mpmath.org/doc/current/functions/hypergeometric.html>,
which fixes #7340 <https://github.com/scipy/scipy/issues/7340>. These fixes
were made as part of an effort to rewrite the Fortran 77 implementation of
hyp2f1 in Cython piece by piece. This rewriting is now roughly 50% complete.
scipy.stats improvements
scipy.stats.qmc.LatinHypercube introduces two new optional keyword-only
arguments, optimization and strength. optimization is either
None or random-cd. In the latter, random permutations are performed to
improve the centered discrepancy. strength is either 1 or 2. 1 corresponds
to the classical LHS while 2 has better sub-projection properties. This
construction is referred to as an orthogonal array based LHS of strength 2.
In both cases, the output is still a LHS.
scipy.stats.qmc.Halton is faster as the underlying Van der Corput sequence
was ported to Cython.
The alternative parameter was added to the kendalltau and somersd
functions to allow one-sided hypothesis testing. Similarly, the masked
versions of skewtest, kurtosistest, ttest_1samp, ttest_ind,
and ttest_rel now also have an alternative parameter.
Add scipy.stats.gzscore to calculate the geometrical z score.
Random variate generators to sample from arbitrary univariate non-uniform
continuous and discrete distributions have been added to the new
scipy.stats.sampling submodule. Implementations of a C library
UNU.RAN <http://statmath.wu.ac.at/software/unuran/>_ are used for
performance. The generators added are:
- TransformedDensityRejection
- DiscreteAliasUrn
- NumericalInversePolynomial
- DiscreteGuideTable
- SimpleRatioUniforms
The binned_statistic set of functions now have improved performance for
the std, min, max, and median statistic calculations.
somersd and _tau_b now have faster Pythran-based implementations.
Some general efficiency improvements to handling of nan values in
several stats functions.
Added the Tukey-Kramer test as scipy.stats.tukey_hsd.
Improved performance of scipy.stats.argus rvs method.
Added the parameter keepdims to scipy.stats.variation and prevent the
undesirable return of a masked array from the function in some cases.
permutation_test performs an exact or randomized permutation test of a
given statistic on provided data.
Deprecated features
Clear split between public and private API
SciPy has always documented what its public API consisted of in
:ref:its API reference docs <scipy-api>,
however there never was a clear split between public and
private namespaces in the code base. In this release, all namespaces that were
private but happened to miss underscores in their names have been deprecated.
These include (as examples, there are many more):
scipy.signal.splinescipy.ndimage.filtersscipy.ndimage.fourierscipy.ndimage.measurementsscipy.ndimage.morphologyscipy.ndimage.interpolationscipy.sparse.linalg.solvescipy.sparse.linalg.eigenscipy.sparse.linalg.isolve
All functions and other objects in these namespaces that were meant to be
public are accessible from their respective public namespace (e.g.
scipy.signal). The design principle is that any public object must be
accessible from a single namespace only; there are a few exceptions, mostly for
historical reasons (e.g., stats and stats.distributions overlap).
For other libraries aiming to provide a SciPy-compatible API, it is now
unambiguous what namespace structure to follow. See
gh-14360 <https://github.com/scipy/scipy/issues/14360>_ for more details.
Other deprecations
NumericalInverseHermite has been deprecated from scipy.stats and moved
to the scipy.stats.sampling submodule. It now uses the C implementation of
the UNU.RAN library so the result of methods like ppf may vary slightly.
Parameter tol has been deprecated and renamed to u_resolution. The
parameter max_intervals has also been deprecated and will be removed in a
future release of SciPy.
Backwards incompatible changes
- SciPy has raised the minimum compiler versions to GCC 6.3 on linux and
VS2019 on windows. In particular, this means that SciPy may now use C99 and
C++14 features. For more details see
here <https://docs.scipy.org/doc/scipy/reference/dev/toolchain.html>_. - The result for empty bins for
scipy.stats.binned_statisticwith the builtin'std'metric is nownan, for consistency withnp.std. - The function
scipy.spatial.distance.wminkowskihas been removed. To achieve the same results as before, please use theminkowskidistance function with the (optional)w=keyword-argument for the given weight.
Other changes
Some Fortran 77 code was modernized to be compatible with NAG's nagfor Fortran
compiler (see, e.g., PR 13229 <https://github.com/scipy/scipy/pull/13229>_).
threadpoolctl may now be used by our test suite to substantially improve
the efficiency of parallel test suite runs.
Authors
- @endolith
- adamadanandy +
- akeemlh +
- Anton Akhmerov
- Marvin Albert +
- alegresor +
- Andrew Annex +
- Pantelis Antonoudiou +
- Ross Barnowski +
- Christoph Baumgarten
- Stephen Becker +
- Nickolai Belakovski
- Peter Bell
- berberto +
- Georgii Bocharov +
- Evgeni Burovski
- Matthias Bussonnier
- CJ Carey
- Justin Charlong +
- Dennis Collaris +
- David Cottrell +
- cruyffturn +
- da-woods +
- Anirudh Dagar
- Tiger Du +
- Thomas Duvernay
- Dani El-Ayyass +
- Castedo Ellerman +
- Donnie Erb +
- Andreas Esders-Kopecky +
- Livio F +
- Isuru Fernando
- Evelyn Fitzgerald +
- Sara Fridovich-Keil +
- Mark E Fuller +
- Ralf Gommers
- Kevin Richard Green +
- guiweber +
- Nitish Gupta +
- h-vetinari
- Matt Haberland
- J. Hariharan +
- Charles Harris
- Trever Hines
- Ian Hunt-Isaak +
- ich +
- Itrimel +
- Jan-Hendrik Müller +
- Jebby993 +
- Evan W Jones +
- Nathaniel Jones +
- Jeffrey Kelling +
- Malik Idrees Hasan Khan +
- Sergey B Kirpichev
- Kadatatlu Kishore +
- Andrew Knyazev
- Ravin Kumar +
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Tim Leslie
- lezcano +
- Xingyu Liu
- Christian Lorentzen
- Lorenzo +
- Smit Lunagariya +
- Lv101Magikarp +
- Yair M +
- Cong Ma
- Lorenzo Maffioli +
- majiang +
- Brian McFee +
- Nicholas McKibben
- John Speed Meyers +
- millivolt9 +
- Jarrod Millman
- Harsh Mishra +
- Boaz Mohar +
- naelsondouglas +
- Andrew Nelson
- Nico Schlömer
- Thomas Nowotny +
- nullptr +
- Teddy Ort +
- Nick Papior
- ParticularMiner +
- Dima Pasechnik
- Tirth Patel
- Matti Picus
- Ilhan Polat
- Adrian Price-Whelan +
- Quentin Barthélemy +
- Sundar R +
- Judah Rand +
- Tyler Reddy
- Renal-Of-Loon +
- Frederic Renner +
- Pamphile Roy
- Bharath Saiguhan +
- Atsushi Sakai
- Eric Schanet +
- Sebastian Wallkötter
- serge-sans-paille
- Reshama Shaikh +
- Namami Shanker
- Walter Simson +
- Gagandeep Singh +
- Leo C. Stein +
- Albert Steppi
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Masayuki Takagi +
- Mike Taves
- Ben Thompson +
- Bas van Beek
- Jacob Vanderplas
- Dhruv Vats +
- H. Vetinari +
- Thomas Viehmann +
- Pauli Virtanen
- Vlad +
- Arthur Volant
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Haoyin Xu +
- Rory Yorke
- Egor Zemlyanoy
- Gang Zhao +
- 赵丰 (Zhao Feng) +
A total of 133 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.
- Python
Published by tylerjereddy over 4 years ago
scipy - SciPy 1.8.0rc1
SciPy 1.8.0 Release Notes
Note: SciPy 1.8.0 is not released yet!
SciPy 1.8.0 is the culmination of 6 months of hard work. It contains
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.8.x branch, and on adding new features on the master branch.
This release requires Python 3.8+ and NumPy 1.17.3 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
- A sparse array API has been added for early testing and feedback; this work is ongoing, and users should expect minor API refinements over the next few releases.
- The sparse SVD library PROPACK is now vendored with SciPy, and an interface
is exposed via
scipy.sparse.svdswithsolver='PROPACK'. - A new
scipy.stats.samplingsubmodule that leverages theUNU.RANC library to sample from arbitrary univariate non-uniform continuous and discrete distributions - All namespaces that were private but happened to miss underscores in their names have been deprecated.
New features
scipy.fft improvements
Added an orthogonalize=None parameter to the real transforms in scipy.fft
which controls whether the modified definition of DCT/DST is used without
changing the overall scaling.
scipy.fft backend registration is now smoother, operating with a single
registration call and no longer requiring a context manager.
scipy.integrate improvements
scipy.integrate.quad_vec introduces a new optional keyword-only argument,
args. args takes in a tuple of extra arguments if any (default is
args=()), which is then internally used to pass into the callable function
(needing these extra arguments) which we wish to integrate.
scipy.interpolate improvements
scipy.interpolate.BSpline has a new method, design_matrix, which
constructs a design matrix of b-splines in the sparse CSR format.
A new method from_cubic in BSpline class allows to convert a
CubicSpline object to BSpline object.
scipy.linalg improvements
scipy.linalg gained three new public array structure investigation functions.
scipy.linalg.bandwidth returns information about the bandedness of an array
and can be used to test for triangular structure discovery, while
scipy.linalg.issymmetric and scipy.linalg.ishermitian test the array for
exact and approximate symmetric/Hermitian structure.
scipy.optimize improvements
scipy.optimize.check_grad introduces two new optional keyword only arguments,
direction and seed. direction can take values, 'all' (default),
in which case all the one hot direction vectors will be used for verifying
the input analytical gradient function and 'random', in which case a
random direction vector will be used for the same purpose. seed
(default is None) can be used for reproducing the return value of
check_grad function. It will be used only when direction='random'.
The scipy.optimize.minimize TNC method has been rewritten to use Cython
bindings. This also fixes an issue with the callback altering the state of the
optimization.
Added optional parameters target_accept_rate and stepwise_factor for
adapative step size adjustment in basinhopping.
The epsilon argument to approx_fprime is now optional so that it may
have a default value consistent with most other functions in scipy.optimize.
scipy.signal improvements
Add analog argument, default False, to zpk2sos, and add new pairing
option 'minimal' to construct analog and minimal discrete SOS arrays.
tf2sos uses zpk2sos; add analog argument here as well, and pass it on
to zpk2sos.
savgol_coeffs and savgol_filter now work for even window lengths.
Added the Chirp Z-transform and Zoom FFT available as scipy.signal.CZT and
scipy.signal.ZoomFFT.
scipy.sparse improvements
An array API has been added for early testing and feedback; this
work is ongoing, and users should expect minor API refinements over
the next few releases. Please refer to the scipy.sparse
docstring for more information.
maximum_flow introduces optional keyword only argument, method
which accepts either, 'edmonds-karp' (Edmonds Karp algorithm) or
'dinic' (Dinic's algorithm). Moreover, 'dinic' is used as default
value for method which means that Dinic's algorithm is used for computing
maximum flow unless specified. See, the comparison between the supported
algorithms in
this comment <https://github.com/scipy/scipy/pull/14358#issue-684212523>_.
Parameters atol, btol now default to 1e-6 in
scipy.sparse.linalg.lsmr to match with default values in
scipy.sparse.linalg.lsqr.
Add the Transpose-Free Quasi-Minimal Residual algorithm (TFQMR) for general
nonsingular non-Hermitian linear systems in scipy.sparse.linalg.tfqmr.
The sparse SVD library PROPACK is now vendored with SciPy, and an interface is
exposed via scipy.sparse.svds with solver='PROPACK'. For some problems,
this may be faster and/or more accurate than the default, ARPACK.
sparse.linalg iterative solvers now have a nonzero initial guess option,
which may be specified as x0 = 'Mb'.
The trace method has been added for sparse matrices.
scipy.spatial improvements
scipy.spatial.transform.Rotation now supports item assignment and has a new
concatenate method.
Add scipy.spatial.distance.kulczynski1 in favour of
scipy.spatial.distance.kulsinski which will be deprecated in the next
release.
scipy.spatial.distance.minkowski now also supports 0<p<1.
scipy.special improvements
The new function scipy.special.log_expit computes the logarithm of the
logistic sigmoid function. The function is formulated to provide accurate
results for large positive and negative inputs, so it avoids the problems
that would occur in the naive implementation log(expit(x)).
A suite of five new functions for elliptic integrals:
scipy.special.ellipr{c,d,f,g,j}. These are the
Carlson symmetric elliptic integrals <https://dlmf.nist.gov/19.16>_, which
have computational advantages over the classical Legendre integrals. Previous
versions included some elliptic integrals from the Cephes library
(scipy.special.ellip{k,km1,kinc,e,einc}) but was missing the integral of
third kind (Legendre's Pi), which can be evaluated using the new Carlson
functions. The new Carlson elliptic integral functions can be evaluated in the
complex plane, whereas the Cephes library's functions are only defined for
real inputs.
Several defects in scipy.special.hyp2f1 have been corrected. Approximately
correct values are now returned for z near exp(+-i*pi/3), fixing
#8054 <https://github.com/scipy/scipy/issues/8054>. Evaluation for such z
is now calculated through a series derived by
López and Temme (2013) <https://arxiv.org/abs/1306.2046> that converges in
these regions. In addition, degenerate cases with one or more of a, b,
and/or c a non-positive integer are now handled in a manner consistent with
mpmath's hyp2f1 implementation <https://mpmath.org/doc/current/functions/hypergeometric.html>,
which fixes #7340 <https://github.com/scipy/scipy/issues/7340>. These fixes
were made as part of an effort to rewrite the Fortran 77 implementation of
hyp2f1 in Cython piece by piece. This rewriting is now roughly 50% complete.
scipy.stats improvements
scipy.stats.qmc.LatinHypercube introduces two new optional keyword-only
arguments, optimization and strength. optimization is either
None or random-cd. In the latter, random permutations are performed to
improve the centered discrepancy. strength is either 1 or 2. 1 corresponds
to the classical LHS while 2 has better sub-projection properties. This
construction is referred to as an orthogonal array based LHS of strength 2.
In both cases, the output is still a LHS.
scipy.stats.qmc.Halton is faster as the underlying Van der Corput sequence
was ported to Cython.
The alternative parameter was added to the kendalltau and somersd
functions to allow one-sided hypothesis testing. Similarly, the masked
versions of skewtest, kurtosistest, ttest_1samp, ttest_ind,
and ttest_rel now also have an alternative parameter.
Add scipy.stats.gzscore to calculate the geometrical z score.
Random variate generators to sample from arbitrary univariate non-uniform
continuous and discrete distributions have been added to the new
scipy.stats.sampling submodule. Implementations of a C library
UNU.RAN <http://statmath.wu.ac.at/software/unuran/>_ are used for
performance. The generators added are:
- TransformedDensityRejection
- DiscreteAliasUrn
- NumericalInversePolynomial
- DiscreteGuideTable
- SimpleRatioUniforms
The binned_statistic set of functions now have improved performance for
the std, min, max, and median statistic calculations.
somersd and _tau_b now have faster Pythran-based implementations.
Some general efficiency improvements to handling of nan values in
several stats functions.
Added the Tukey-Kramer test as scipy.stats.tukey_hsd.
Improved performance of scipy.stats.argus rvs method.
Added the parameter keepdims to scipy.stats.variation and prevent the
undesirable return of a masked array from the function in some cases.
permutation_test performs an exact or randomized permutation test of a
given statistic on provided data.
Deprecated features
Clear split between public and private API
SciPy has always documented what its public API consisted of in
:ref:its API reference docs <scipy-api>,
however there never was a clear split between public and
private namespaces in the code base. In this release, all namespaces that were
private but happened to miss underscores in their names have been deprecated.
These include (as examples, there are many more):
scipy.signal.splinescipy.ndimage.filtersscipy.ndimage.fourierscipy.ndimage.measurementsscipy.ndimage.morphologyscipy.ndimage.interpolationscipy.sparse.linalg.solvescipy.sparse.linalg.eigenscipy.sparse.linalg.isolve
All functions and other objects in these namespaces that were meant to be
public are accessible from their respective public namespace (e.g.
scipy.signal). The design principle is that any public object must be
accessible from a single namespace only; there are a few exceptions, mostly for
historical reasons (e.g., stats and stats.distributions overlap).
For other libraries aiming to provide a SciPy-compatible API, it is now
unambiguous what namespace structure to follow. See
gh-14360 <https://github.com/scipy/scipy/issues/14360>_ for more details.
Other deprecations
NumericalInverseHermite has been deprecated from scipy.stats and moved
to the scipy.stats.sampling submodule. It now uses the C implementation of
the UNU.RAN library so the result of methods like ppf may vary slightly.
Parameter tol has been deprecated and renamed to u_resolution. The
parameter max_intervals has also been deprecated and will be removed in a
future release of SciPy.
Backwards incompatible changes
- SciPy has raised the minimum compiler versions to GCC 6.3 on linux and
VS2019 on windows. In particular, this means that SciPy may now use C99 and
C++14 features. For more details see
here <https://docs.scipy.org/doc/scipy/reference/dev/toolchain.html>_. - The result for empty bins for
scipy.stats.binned_statisticwith the builtin'std'metric is nownan, for consistency withnp.std. - The function
scipy.spatial.distance.wminkowskihas been removed. To achieve the same results as before, please use theminkowskidistance function with the (optional)w=keyword-argument for the given weight.
Other changes
Some Fortran 77 code was modernized to be compatible with NAG's nagfor Fortran
compiler (see, e.g., PR 13229 <https://github.com/scipy/scipy/pull/13229>_).
threadpoolctl may now be used by our test suite to substantially improve
the efficiency of parallel test suite runs.
Authors
- @endolith
- adamadanandy +
- akeemlh +
- Anton Akhmerov
- Marvin Albert +
- alegresor +
- Andrew Annex +
- Pantelis Antonoudiou +
- Ross Barnowski +
- Christoph Baumgarten
- Stephen Becker +
- Nickolai Belakovski
- Peter Bell
- berberto +
- Georgii Bocharov +
- Evgeni Burovski
- Matthias Bussonnier
- CJ Carey
- Justin Charlong +
- Dennis Collaris +
- David Cottrell +
- cruyffturn +
- da-woods +
- Anirudh Dagar
- Tiger Du +
- Thomas Duvernay
- Dani El-Ayyass +
- Castedo Ellerman +
- Donnie Erb +
- Andreas Esders-Kopecky +
- Livio F +
- Isuru Fernando
- Evelyn Fitzgerald +
- Sara Fridovich-Keil +
- Mark E Fuller +
- Ralf Gommers
- Kevin Richard Green +
- guiweber +
- Nitish Gupta +
- h-vetinari
- Matt Haberland
- J. Hariharan +
- Charles Harris
- Trever Hines
- Ian Hunt-Isaak +
- ich +
- Itrimel +
- Jan-Hendrik Müller +
- Jebby993 +
- Evan W Jones +
- Nathaniel Jones +
- Jeffrey Kelling +
- Malik Idrees Hasan Khan +
- Sergey B Kirpichev
- Kadatatlu Kishore +
- Andrew Knyazev
- Ravin Kumar +
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Tim Leslie
- lezcano +
- Xingyu Liu
- Christian Lorentzen
- Lorenzo +
- Smit Lunagariya +
- Lv101Magikarp +
- Yair M +
- Cong Ma
- Lorenzo Maffioli +
- majiang +
- Brian McFee +
- Nicholas McKibben
- John Speed Meyers +
- millivolt9 +
- Jarrod Millman
- Harsh Mishra +
- Boaz Mohar +
- naelsondouglas +
- Andrew Nelson
- Nico Schlömer
- Thomas Nowotny +
- nullptr +
- Teddy Ort +
- Nick Papior
- ParticularMiner +
- Dima Pasechnik
- Tirth Patel
- Matti Picus
- Ilhan Polat
- Adrian Price-Whelan +
- Quentin Barthélemy +
- Sundar R +
- Judah Rand +
- Tyler Reddy
- Renal-Of-Loon +
- Frederic Renner +
- Pamphile Roy
- Bharath Saiguhan +
- Atsushi Sakai
- Eric Schanet +
- Sebastian Wallkötter
- serge-sans-paille
- Reshama Shaikh +
- Namami Shanker
- Walter Simson +
- Gagandeep Singh +
- Leo C. Stein +
- Albert Steppi
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Mike Taves
- Ben Thompson +
- Bas van Beek
- Jacob Vanderplas
- Dhruv Vats +
- H. Vetinari +
- Thomas Viehmann +
- Pauli Virtanen
- Vlad +
- Arthur Volant
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Haoyin Xu +
- Rory Yorke
- Egor Zemlyanoy
- Gang Zhao +
- 赵丰 (Zhao Feng) +
A total of 132 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.
- Python
Published by tylerjereddy over 4 years ago
scipy - SciPy 1.7.3
SciPy 1.7.3 Release Notes
SciPy 1.7.3 is a bug-fix release that provides binary wheels
for MacOS arm64 with Python 3.8, 3.9, and 3.10. The MacOS arm64 wheels
are only available for MacOS version 12.0 and greater, as explained
in Issue 14688.
Authors
- Anirudh Dagar
- Ralf Gommers
- Tyler Reddy
- Pamphile Roy
- Olivier Grisel
- Isuru Fernando
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.
- Python
Published by tylerjereddy over 4 years ago
scipy - SciPy 1.7.2
SciPy 1.7.2 Release Notes
SciPy 1.7.2 is a bug-fix release with no new features
compared to 1.7.1. Notably, the release includes wheels
for Python 3.10, and wheels are now built with a newer
version of OpenBLAS, 0.3.17. Python 3.10 wheels are provided
for MacOS x86_64 (thin, not universal2 or arm64 at this time),
and Windows/Linux 64-bit. Many wheels are now built with newer
versions of manylinux, which may require newer versions of pip.
Authors
- Peter Bell
- da-woods +
- Isuru Fernando
- Ralf Gommers
- Matt Haberland
- Nicholas McKibben
- Ilhan Polat
- Judah Rand +
- Tyler Reddy
- Pamphile Roy
- Charles Harris
- Matti Picus
- Hugo van Kemenade
- Jacob Vanderplas
A total of 14 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.
- Python
Published by tylerjereddy over 4 years ago
scipy - SciPy 1.7.1
SciPy 1.7.1 Release Notes
SciPy 1.7.1 is a bug-fix release with no new features
compared to 1.7.0.
Authors
- Peter Bell
- Evgeni Burovski
- Justin Charlong +
- Ralf Gommers
- Matti Picus
- Tyler Reddy
- Pamphile Roy
- Sebastian Wallkötter
- Arthur Volant
A total of 9 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.
- Python
Published by tylerjereddy almost 5 years ago
scipy - SciPy 1.7.0
SciPy 1.7.0 Release Notes
SciPy 1.7.0 is the culmination of 6 months of hard work. It contains
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.7.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
- A new submodule for quasi-Monte Carlo,
scipy.stats.qmc, was added - The documentation design was updated to use the same PyData-Sphinx theme as NumPy and other ecosystem libraries.
- We now vendor and leverage the Boost C++ library to enable numerous
improvements for long-standing weaknesses in
scipy.stats -
scipy.statshas six new distributions, eight new (or overhauled) hypothesis tests, a new function for bootstrapping, a class that enables fast random variate sampling and percentile point function evaluation, and many other enhancements. -
cdistandpdistdistance calculations are faster for several metrics, especially weighted cases, thanks to a rewrite to a new C++ backend framework - A new class for radial basis function interpolation,
RBFInterpolator, was added to address issues with theRbfclass.
We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source
Software for Science program for supporting many of the improvements to
scipy.stats.
New features
scipy.cluster improvements
An optional argument, seed, has been added to kmeans and kmeans2 to
set the random generator and random state.
scipy.interpolate improvements
Improved input validation and error messages for fitpack.bispev and
fitpack.parder for scenarios that previously caused substantial confusion
for users.
The class RBFInterpolator was added to supersede the Rbf class. The new
class has usage that more closely follows other interpolator classes, corrects
sign errors that caused unexpected smoothing behavior, includes polynomial
terms in the interpolant (which are necessary for some RBF choices), and
supports interpolation using only the k-nearest neighbors for memory
efficiency.
scipy.linalg improvements
An LAPACK wrapper was added for access to the tgexc subroutine.
scipy.ndimage improvements
scipy.ndimage.affine_transform is now able to infer the output_shape from
the out array.
scipy.optimize improvements
The optional parameter bounds was added to
_minimize_neldermead to support bounds constraints
for the Nelder-Mead solver.
trustregion methods trust-krylov, dogleg and trust-ncg can now
estimate hess by finite difference using one of
["2-point", "3-point", "cs"].
halton was added as a sampling_method in scipy.optimize.shgo.
sobol was fixed and is now using scipy.stats.qmc.Sobol.
halton and sobol were added as init methods in
scipy.optimize.differential_evolution.
differential_evolution now accepts an x0 parameter to provide an
initial guess for the minimization.
least_squares has a modest performance improvement when SciPy is built
with Pythran transpiler enabled.
When linprog is used with method 'highs', 'highs-ipm', or
'highs-ds', the result object now reports the marginals (AKA shadow
prices, dual values) and residuals associated with each constraint.
scipy.signal improvements
get_window supports general_cosine and general_hamming window
functions.
scipy.signal.medfilt2d now releases the GIL where appropriate to enable
performance gains via multithreaded calculations.
scipy.sparse improvements
Addition of dia_matrix sparse matrices is now faster.
scipy.spatial improvements
distance.cdist and distance.pdist performance has greatly improved for
certain weighted metrics. Namely: minkowski, euclidean, chebyshev,
canberra, and cityblock.
Modest performance improvements for many of the unweighted cdist and
pdist metrics noted above.
The parameter seed was added to scipy.spatial.vq.kmeans and
scipy.spatial.vq.kmeans2.
The parameters axis and keepdims where added to
scipy.spatial.distance.jensenshannon.
The rotation methods from_rotvec and as_rotvec now accept a
degrees argument to specify usage of degrees instead of radians.
scipy.special improvements
Wright's generalized Bessel function for positive arguments was added as
scipy.special.wright_bessel.
An implementation of the inverse of the Log CDF of the Normal Distribution is
now available via scipy.special.ndtri_exp.
scipy.stats improvements
Hypothesis Tests
The Mann-Whitney-Wilcoxon test, mannwhitneyu, has been rewritten. It now
supports n-dimensional input, an exact test method when there are no ties,
and improved documentation. Please see "Other changes" for adjustments to
default behavior.
The new function scipy.stats.binomtest replaces scipy.stats.binom_test. The
new function returns an object that calculates a confidence intervals of the
proportion parameter. Also, performance was improved from O(n) to O(log(n)) by
using binary search.
The two-sample version of the Cramer-von Mises test is implemented in
scipy.stats.cramervonmises_2samp.
The Alexander-Govern test is implemented in the new function
scipy.stats.alexandergovern.
The new functions scipy.stats.barnard_exact and scipy.stats. boschloo_exact
respectively perform Barnard's exact test and Boschloo's exact test
for 2x2 contingency tables.
The new function scipy.stats.page_trend_test performs Page's test for ordered
alternatives.
The new function scipy.stats.somersd performs Somers' D test for ordinal
association between two variables.
An option, permutations, has been added in scipy.stats.ttest_ind to
perform permutation t-tests. A trim option was also added to perform
a trimmed (Yuen's) t-test.
The alternative parameter was added to the skewtest, kurtosistest,
ranksums, mood, ansari, linregress, and spearmanr functions
to allow one-sided hypothesis testing.
Sample statistics
The new function scipy.stats.differential_entropy estimates the differential
entropy of a continuous distribution from a sample.
The boxcox and boxcox_normmax now allow the user to control the
optimizer used to minimize the negative log-likelihood function.
A new function scipy.stats.contingency.relative_risk calculates the
relative risk, or risk ratio, of a 2x2 contingency table. The object
returned has a method to compute the confidence interval of the relative risk.
Performance improvements in the skew and kurtosis functions achieved
by removal of repeated/redundant calculations.
Substantial performance improvements in scipy.stats.mstats.hdquantiles_sd.
The new function scipy.stats.contingency.association computes several
measures of association for a contingency table: Pearsons contingency
coefficient, Cramer's V, and Tschuprow's T.
The parameter nan_policy was added to scipy.stats.zmap to provide options
for handling the occurrence of nan in the input data.
The parameter ddof was added to scipy.stats.variation and
scipy.stats.mstats.variation.
The parameter weights was added to scipy.stats.gmean.
Statistical Distributions
We now vendor and leverage the Boost C++ library to address a number of
previously reported issues in stats. Notably, beta, binom,
nbinom now have Boost backends, and it is straightforward to leverage
the backend for additional functions.
The skew Cauchy probability distribution has been implemented as
scipy.stats.skewcauchy.
The Zipfian probability distribution has been implemented as
scipy.stats.zipfian.
The new distributions nchypergeom_fisher and nchypergeom_wallenius
implement the Fisher and Wallenius versions of the noncentral hypergeometric
distribution, respectively.
The generalized hyperbolic distribution was added in
scipy.stats.genhyperbolic.
The studentized range distribution was added in scipy.stats.studentized_range.
scipy.stats.argus now has improved handling for small parameter values.
Better argument handling/preparation has resulted in performance improvements for many distributions.
The cosine distribution has added ufuncs for ppf, cdf, sf, and
isf methods including numerical precision improvements at the edges of the
support of the distribution.
An option to fit the distribution to data by the method of moments has been
added to the fit method of the univariate continuous distributions.
Other
scipy.stats.bootstrap has been added to allow estimation of the confidence
interval and standard error of a statistic.
The new function scipy.stats.contingency.crosstab computes a contingency
table (i.e. a table of counts of unique entries) for the given data.
scipy.stats.NumericalInverseHermite enables fast random variate sampling
and percentile point function evaluation of an arbitrary univariate statistical
distribution.
New scipy.stats.qmc module
This new module provides Quasi-Monte Carlo (QMC) generators and associated helper functions.
It provides a generic class scipy.stats.qmc.QMCEngine which defines a QMC
engine/sampler. An engine is state aware: it can be continued, advanced and
reset. 3 base samplers are available:
-
scipy.stats.qmc.Sobolthe well known Sobol low discrepancy sequence. Several warnings have been added to guide the user into properly using this sampler. The sequence is scrambled by default. -
scipy.stats.qmc.Halton: Halton low discrepancy sequence. The sequence is scrambled by default. -
scipy.stats.qmc.LatinHypercube: plain LHS design.
And 2 special samplers are available:
-
scipy.stats.qmc.MultinomialQMC: sampling from a multinomial distribution using any of the basescipy.stats.qmc.QMCEngine. -
scipy.stats.qmc.MultivariateNormalQMC: sampling from a multivariate Normal using any of the basescipy.stats.qmc.QMCEngine.
The module also provide the following helpers:
-
scipy.stats.qmc.discrepancy: assess the quality of a set of points in terms of space coverage. -
scipy.stats.qmc.update_discrepancy: can be used in an optimization loop to construct a good set of points. -
scipy.stats.qmc.scale: easily scale a set of points from (to) the unit interval to (from) a given range.
Deprecated features
scipy.linalg deprecations
-
scipy.linalg.pinv2is deprecated and its functionality is completely subsumed intoscipy.linalg.pinv - Both
rcond,condkeywords ofscipy.linalg.pinvandscipy.linalg.pinvhwere not working and now are deprecated. They are now replaced with functioningatolandrtolkeywords with clear usage.
scipy.spatial deprecations
-
scipy.spatial.distancemetrics expect 1d input vectors but will callnp.squeezeon their inputs to accept any extra length-1 dimensions. That behaviour is now deprecated.
Other changes
We now accept and leverage performance improvements from the ahead-of-time
Python-to-C++ transpiler, Pythran, which can be optionally disabled (via
export SCIPY_USE_PYTHRAN=0) but is enabled by default at build time.
There are two changes to the default behavior of scipy.stats.mannwhitenyu:
- For years, use of the default
alternative=Nonewas deprecated; explicitalternativespecification was required. Use of the new default value ofalternative, "two-sided", is now permitted. - Previously, all p-values were based on an asymptotic approximation. Now, for small samples without ties, the p-values returned are exact by default.
Support has been added for PEP 621 (project metadata in pyproject.toml)
We now support a Gitpod environment to reduce the barrier to entry for SciPy
development; for more details see :ref:quickstart-gitpod.
Authors
- @endolith
- Jelle Aalbers +
- Adam +
- Tania Allard +
- Sven Baars +
- Max Balandat +
- baumgarc +
- Christoph Baumgarten
- Peter Bell
- Lilian Besson
- Robinson Besson +
- Max Bolingbroke
- Blair Bonnett +
- Jordão Bragantini
- Harm Buisman +
- Evgeni Burovski
- Matthias Bussonnier
- Dominic C
- CJ Carey
- Ramón Casero +
- Chachay +
- charlotte12l +
- Benjamin Curtice Corbett +
- Falcon Dai +
- Ian Dall +
- Terry Davis
- droussea2001 +
- DWesl +
- dwight200 +
- Thomas J. Fan +
- Joseph Fox-Rabinovitz
- Max Frei +
- Laura Gutierrez Funderburk +
- gbonomib +
- Matthias Geier +
- Pradipta Ghosh +
- Ralf Gommers
- Evan H +
- h-vetinari
- Matt Haberland
- Anselm Hahn +
- Alex Henrie
- Piet Hessenius +
- Trever Hines +
- Elisha Hollander +
- Stephan Hoyer
- Tom Hu +
- Kei Ishikawa +
- Julien Jerphanion
- Robert Kern
- Shashank KS +
- Peter Mahler Larsen
- Eric Larson
- Cheng H. Lee +
- Gregory R. Lee
- Jean-Benoist Leger +
- lgfunderburk +
- liam-o-marsh +
- Xingyu Liu +
- Alex Loftus +
- Christian Lorentzen +
- Cong Ma
- Marc +
- MarkPundurs +
- Markus Löning +
- Liam Marsh +
- Nicholas McKibben
- melissawm +
- Jamie Morton
- Andrew Nelson
- Nikola Forró
- Tor Nordam +
- Olivier Gauthé +
- Rohit Pandey +
- Avanindra Kumar Pandeya +
- Tirth Patel
- paugier +
- Alex H. Wagner, PhD +
- Jeff Plourde +
- Ilhan Polat
- pranavrajpal +
- Vladyslav Rachek
- Bharat Raghunathan
- Recursing +
- Tyler Reddy
- Lucas Roberts
- Gregor Robinson +
- Pamphile Roy +
- Atsushi Sakai
- Benjamin Santos
- Martin K. Scherer +
- Thomas Schmelzer +
- Daniel Scott +
- Sebastian Wallkötter +
- serge-sans-paille +
- Namami Shanker +
- Masashi Shibata +
- Alexandre de Siqueira +
- Albert Steppi +
- Adam J. Stewart +
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Mike Taves
- Dan Temkin +
- Nicolas Tessore +
- tsubota20 +
- Robert Uhl
- christos val +
- Bas van Beek +
- Ashutosh Varma +
- Jose Vazquez +
- Sebastiano Vigna
- Aditya Vijaykumar
- VNMabus
- Arthur Volant +
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Anreas Weh
- Josh Wilson
- Rory Yorke
- Egor Zemlyanoy
- Marc Zoeller +
- zoj613 +
- 秋纫 +
A total of 126 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.
- Python
Published by tylerjereddy almost 5 years ago
scipy - SciPy 1.7.0rc2
SciPy 1.7.0 Release Notes
Note: Scipy 1.7.0 is not released yet!
SciPy 1.7.0 is the culmination of 6 months of hard work. It contains
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.7.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
- A new submodule for quasi-Monte Carlo,
scipy.stats.qmc, was added - The documentation design was updated to use the same PyData-Sphinx theme as other NumFOCUS packages like NumPy.
- We now vendor and leverage the Boost C++ library to enable numerous
improvements for long-standing weaknesses in
scipy.stats -
scipy.statshas six new distributions, eight new (or overhauled) hypothesis tests, a new function for bootstrapping, a class that enables fast random variate sampling and percentile point function evaluation, and many other enhancements. -
cdistandpdistdistance calculations are faster for several metrics, especially weighted cases, thanks to a rewrite to a new C++ backend framework - A new class for radial basis function interpolation,
RBFInterpolator, was added to address issues with theRbfclass.
We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source
Software for Science program for supporting many of the improvements to
scipy.stats.
New features
scipy.cluster improvements
An optional argument, seed, has been added to kmeans and kmeans2 to
set the random generator and random state.
scipy.interpolate improvements
Improved input validation and error messages for fitpack.bispev and
fitpack.parder for scenarios that previously caused substantial confusion
for users.
The class RBFInterpolator was added to supersede the Rbf class. The new
class has usage that more closely follows other interpolator classes, corrects
sign errors that caused unexpected smoothing behavior, includes polynomial
terms in the interpolant (which are necessary for some RBF choices), and
supports interpolation using only the k-nearest neighbors for memory
efficiency.
scipy.linalg improvements
An LAPACK wrapper was added for access to the tgexc subroutine.
scipy.ndimage improvements
scipy.ndimage.affine_transform is now able to infer the output_shape from
the out array.
scipy.optimize improvements
The optional parameter bounds was added to
_minimize_neldermead to support bounds constraints
for the Nelder-Mead solver.
trustregion methods trust-krylov, dogleg and trust-ncg can now
estimate hess by finite difference using one of
["2-point", "3-point", "cs"].
halton was added as a sampling_method in scipy.optimize.shgo.
sobol was fixed and is now using scipy.stats.qmc.Sobol.
halton and sobol were added as init methods in
scipy.optimize.differential_evolution.
differential_evolution now accepts an x0 parameter to provide an
initial guess for the minimization.
least_squares has a modest performance improvement when SciPy is built
with Pythran transpiler enabled.
When linprog is used with method 'highs', 'highs-ipm', or
'highs-ds', the result object now reports the marginals (AKA shadow
prices, dual values) and residuals associated with each constraint.
scipy.signal improvements
get_window supports general_cosine and general_hamming window
functions.
scipy.signal.medfilt2d now releases the GIL where appropriate to enable
performance gains via multithreaded calculations.
scipy.sparse improvements
Addition of dia_matrix sparse matrices is now faster.
scipy.spatial improvements
distance.cdist and distance.pdist performance has greatly improved for
certain weighted metrics. Namely: minkowski, euclidean, chebyshev,
canberra, and cityblock.
Modest performance improvements for many of the unweighted cdist and
pdist metrics noted above.
The parameter seed was added to scipy.spatial.vq.kmeans and
scipy.spatial.vq.kmeans2.
The parameters axis and keepdims where added to
scipy.spatial.distance.jensenshannon.
The rotation methods from_rotvec and as_rotvec now accept a
degrees argument to specify usage of degrees instead of radians.
scipy.special improvements
Wright's generalized Bessel function for positive arguments was added as
scipy.special.wright_bessel.
An implementation of the inverse of the Log CDF of the Normal Distribution is
now available via scipy.special.ndtri_exp.
scipy.stats improvements
Hypothesis Tests
The Mann-Whitney-Wilcoxon test, mannwhitneyu, has been rewritten. It now
supports n-dimensional input, an exact test method when there are no ties,
and improved documentation. Please see "Other changes" for adjustments to
default behavior.
The new function scipy.stats.binomtest replaces scipy.stats.binom_test. The
new function returns an object that calculates a confidence intervals of the
proportion parameter. Also, performance was improved from O(n) to O(log(n)) by
using binary search.
The two-sample version of the Cramer-von Mises test is implemented in
scipy.stats.cramervonmises_2samp.
The Alexander-Govern test is implemented in the new function
scipy.stats.alexandergovern.
The new functions scipy.stats.barnard_exact and scipy.stats. boschloo_exact
respectively perform Barnard's exact test and Boschloo's exact test
for 2x2 contingency tables.
The new function scipy.stats.page_trend_test performs Page's test for ordered
alternatives.
The new function scipy.stats.somersd performs Somers' D test for ordinal
association between two variables.
An option, permutations, has been added in scipy.stats.ttest_ind to
perform permutation t-tests. A trim option was also added to perform
a trimmed (Yuen's) t-test.
The alternative parameter was added to the skewtest, kurtosistest,
ranksums, mood, ansari, linregress, and spearmanr functions
to allow one-sided hypothesis testing.
Sample statistics
The new function scipy.stats.differential_entropy estimates the differential
entropy of a continuous distribution from a sample.
The boxcox and boxcox_normmax now allow the user to control the
optimizer used to minimize the negative log-likelihood function.
A new function scipy.stats.contingency.relative_risk calculates the
relative risk, or risk ratio, of a 2x2 contingency table. The object
returned has a method to compute the confidence interval of the relative risk.
Performance improvements in the skew and kurtosis functions achieved
by removal of repeated/redundant calculations.
Substantial performance improvements in scipy.stats.mstats.hdquantiles_sd.
The new function scipy.stats.contingency.association computes several
measures of association for a contingency table: Pearsons contingency
coefficient, Cramer's V, and Tschuprow's T.
The parameter nan_policy was added to scipy.stats.zmap to provide options
for handling the occurrence of nan in the input data.
The parameter ddof was added to scipy.stats.variation and
scipy.stats.mstats.variation.
The parameter weights was added to scipy.stats.gmean.
Statistical Distributions
We now vendor and leverage the Boost C++ library to address a number of
previously reported issues in stats. Notably, beta, binom,
nbinom now have Boost backends, and it is straightforward to leverage
the backend for additional functions.
The skew Cauchy probability distribution has been implemented as
scipy.stats.skewcauchy.
The Zipfian probability distribution has been implemented as
scipy.stats.zipfian.
The new distributions nchypergeom_fisher and nchypergeom_wallenius
implement the Fisher and Wallenius versions of the noncentral hypergeometric
distribution, respectively.
The generalized hyperbolic distribution was added in
scipy.stats.genhyperbolic.
The studentized range distribution was added in scipy.stats.studentized_range.
scipy.stats.argus now has improved handling for small parameter values.
Better argument handling/preparation has resulted in performance improvements for many distributions.
The cosine distribution has added ufuncs for ppf, cdf, sf, and
isf methods including numerical precision improvements at the edges of the
support of the distribution.
An option to fit the distribution to data by the method of moments has been
added to the fit method of the univariate continuous distributions.
Other
scipy.stats.bootstrap has been added to allow estimation of the confidence
interval and standard error of a statistic.
The new function scipy.stats.contingency.crosstab computes a contingency
table (i.e. a table of counts of unique entries) for the given data.
scipy.stats.NumericalInverseHermite enables fast random variate sampling
and percentile point function evaluation of an arbitrary univariate statistical
distribution.
New scipy.stats.qmc module
This new module provides Quasi-Monte Carlo (QMC) generators and associated helper functions.
It provides a generic class scipy.stats.qmc.QMCEngine which defines a QMC
engine/sampler. An engine is state aware: it can be continued, advanced and
reset. 3 base samplers are available:
-
scipy.stats.qmc.Sobolthe well known Sobol low discrepancy sequence. Several warnings have been added to guide the user into properly using this sampler. The sequence is scrambled by default. -
scipy.stats.qmc.Halton: Halton low discrepancy sequence. The sequence is scrambled by default. -
scipy.stats.qmc.LatinHypercube: plain LHS design.
And 2 special samplers are available:
-
scipy.stats.qmc.MultinomialQMC: sampling from a multinomial distribution using any of the basescipy.stats.qmc.QMCEngine. -
scipy.stats.qmc.MultivariateNormalQMC: sampling from a multivariate Normal using any of the basescipy.stats.qmc.QMCEngine.
The module also provide the following helpers:
-
scipy.stats.qmc.discrepancy: assess the quality of a set of points in terms of space coverage. -
scipy.stats.qmc.update_discrepancy: can be used in an optimization loop to construct a good set of points. -
scipy.stats.qmc.scale: easily scale a set of points from (to) the unit interval to (from) a given range.
Deprecated features
scipy.linalg deprecations
-
scipy.linalg.pinv2is deprecated and its functionality is completely subsumed intoscipy.linalg.pinv - Both
rcond,condkeywords ofscipy.linalg.pinvandscipy.linalg.pinvhwere not working and now are deprecated. They are now replaced with functioningatolandrtolkeywords with clear usage.
scipy.spatial deprecations
-
scipy.spatial.distancemetrics expect 1d input vectors but will callnp.squeezeon their inputs to accept any extra length-1 dimensions. That behaviour is now deprecated.
Backwards incompatible changes
Other changes
We now accept and leverage performance improvements from the ahead-of-time
Python-to-C++ transpiler, Pythran, which can be optionally disabled (via
export SCIPY_USE_PYTHRAN=0) but is enabled by default at build time.
There are two changes to the default behavior of scipy.stats.mannwhitenyu:
- For years, use of the default
alternative=Nonewas deprecated; explicitalternativespecification was required. Use of the new default value ofalternative, "two-sided", is now permitted. - Previously, all p-values were based on an asymptotic approximation. Now, for small samples without ties, the p-values returned are exact by default.
Support has been added for PEP 621 (project metadata in pyproject.toml)
We now support a Gitpod environment to reduce the barrier to entry for SciPy
development; for more details see :ref:quickstart-gitpod.
Authors
- @endolith
- Jelle Aalbers +
- Adam +
- Tania Allard +
- Sven Baars +
- Max Balandat +
- baumgarc +
- Christoph Baumgarten
- Peter Bell
- Lilian Besson
- Robinson Besson +
- Max Bolingbroke
- Blair Bonnett +
- Jordão Bragantini
- Harm Buisman +
- Evgeni Burovski
- Matthias Bussonnier
- Dominic C
- CJ Carey
- Ramón Casero +
- Chachay +
- charlotte12l +
- Benjamin Curtice Corbett +
- Falcon Dai +
- Ian Dall +
- Terry Davis
- droussea2001 +
- DWesl +
- dwight200 +
- Thomas J. Fan +
- Joseph Fox-Rabinovitz
- Max Frei +
- Laura Gutierrez Funderburk +
- gbonomib +
- Matthias Geier +
- Pradipta Ghosh +
- Ralf Gommers
- Evan H +
- h-vetinari
- Matt Haberland
- Anselm Hahn +
- Alex Henrie
- Piet Hessenius +
- Trever Hines +
- Elisha Hollander +
- Stephan Hoyer
- Tom Hu +
- Kei Ishikawa +
- Julien Jerphanion
- Robert Kern
- Shashank KS +
- Peter Mahler Larsen
- Eric Larson
- Cheng H. Lee +
- Gregory R. Lee
- Jean-Benoist Leger +
- lgfunderburk +
- liam-o-marsh +
- Xingyu Liu +
- Alex Loftus +
- Christian Lorentzen +
- Cong Ma
- Marc +
- MarkPundurs +
- Markus Löning +
- Liam Marsh +
- Nicholas McKibben
- melissawm +
- Jamie Morton
- Andrew Nelson
- Nikola Forró
- Tor Nordam +
- Olivier Gauthé +
- Rohit Pandey +
- Avanindra Kumar Pandeya +
- Tirth Patel
- paugier +
- Alex H. Wagner, PhD +
- Jeff Plourde +
- Ilhan Polat
- pranavrajpal +
- Vladyslav Rachek
- Bharat Raghunathan
- Recursing +
- Tyler Reddy
- Lucas Roberts
- Gregor Robinson +
- Pamphile Roy +
- Atsushi Sakai
- Benjamin Santos
- Martin K. Scherer +
- Thomas Schmelzer +
- Daniel Scott +
- Sebastian Wallkötter +
- serge-sans-paille +
- Namami Shanker +
- Masashi Shibata +
- Alexandre de Siqueira +
- Albert Steppi +
- Adam J. Stewart +
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Mike Taves
- Dan Temkin +
- Nicolas Tessore +
- tsubota20 +
- Robert Uhl
- christos val +
- Bas van Beek +
- Ashutosh Varma +
- Jose Vazquez +
- Sebastiano Vigna
- Aditya Vijaykumar
- VNMabus
- Arthur Volant +
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Anreas Weh
- Josh Wilson
- Rory Yorke
- Egor Zemlyanoy
- Marc Zoeller +
- zoj613 +
- 秋纫 +
A total of 126 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.
- Python
Published by tylerjereddy almost 5 years ago
scipy - SciPy 1.7.0rc1
SciPy 1.7.0 Release Notes
Note: Scipy 1.7.0 is not released yet!
SciPy 1.7.0 is the culmination of 6 months of hard work. It contains
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.7.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
- A new submodule for quasi-Monte Carlo,
scipy.stats.qmc, was added - The documentation design was updated to use the same PyData-Sphinx theme as other NumFOCUS packages like NumPy.
- We now vendor and leverage the Boost C++ library to enable numerous
improvements for long-standing weaknesses in
scipy.stats -
scipy.statshas six new distributions, eight new (or overhauled) hypothesis tests, a new function for bootstrapping, a class that enables fast random variate sampling and percentile point function evaluation, and many other enhancements. -
cdistandpdistdistance calculations are faster for several metrics, especially weighted cases, thanks to a rewrite to a new C++ backend framework - A new class for radial basis function interpolation,
RBFInterpolator, was added to address issues with theRbfclass.
We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source
Software for Science program for supporting many of the improvements to
scipy.stats.
New features
scipy.cluster improvements
An optional argument, seed, has been added to kmeans and kmeans2 to
set the random generator and random state.
scipy.interpolate improvements
Improved input validation and error messages for fitpack.bispev and
fitpack.parder for scenarios that previously caused substantial confusion
for users.
The class RBFInterpolator was added to supersede the Rbf class. The new
class has usage that more closely follows other interpolator classes, corrects
sign errors that caused unexpected smoothing behavior, includes polynomial
terms in the interpolant (which are necessary for some RBF choices), and
supports interpolation using only the k-nearest neighbors for memory
efficiency.
scipy.linalg improvements
An LAPACK wrapper was added for access to the tgexc subroutine.
scipy.ndimage improvements
scipy.ndimage.affine_transform is now able to infer the output_shape from
the out array.
scipy.optimize improvements
The optional parameter bounds was added to
_minimize_neldermead to support bounds constraints
for the Nelder-Mead solver.
trustregion methods trust-krylov, dogleg and trust-ncg can now
estimate hess by finite difference using one of
["2-point", "3-point", "cs"].
halton was added as a sampling_method in scipy.optimize.shgo.
sobol was fixed and is now using scipy.stats.qmc.Sobol.
halton and sobol were added as init methods in
scipy.optimize.differential_evolution.
differential_evolution now accepts an x0 parameter to provide an
initial guess for the minimization.
least_squares has a modest performance improvement when SciPy is built
with Pythran transpiler enabled.
When linprog is used with method 'highs', 'highs-ipm', or
'highs-ds', the result object now reports the marginals (AKA shadow
prices, dual values) and residuals associated with each constraint.
scipy.signal improvements
get_window supports general_cosine and general_hamming window
functions.
scipy.signal.medfilt2d now releases the GIL where appropriate to enable
performance gains via multithreaded calculations.
scipy.sparse improvements
Addition of dia_matrix sparse matrices is now faster.
scipy.spatial improvements
distance.cdist and distance.pdist performance has greatly improved for
certain weighted metrics. Namely: minkowski, euclidean, chebyshev,
canberra, and cityblock.
Modest performance improvements for many of the unweighted cdist and
pdist metrics noted above.
The parameter seed was added to scipy.spatial.vq.kmeans and
scipy.spatial.vq.kmeans2.
The parameters axis and keepdims where added to
scipy.spatial.distance.jensenshannon.
The rotation methods from_rotvec and as_rotvec now accept a
degrees argument to specify usage of degrees instead of radians.
scipy.special improvements
Wright's generalized Bessel function for positive arguments was added as
scipy.special.wright_bessel.
An implementation of the inverse of the Log CDF of the Normal Distribution is
now available via scipy.special.ndtri_exp.
scipy.stats improvements
Hypothesis Tests
The Mann-Whitney-Wilcoxon test, mannwhitneyu, has been rewritten. It now
supports n-dimensional input, an exact test method when there are no ties,
and improved documentation. Please see "Other changes" for adjustments to
default behavior.
The new function scipy.stats.binomtest replaces scipy.stats.binom_test. The
new function returns an object that calculates a confidence intervals of the
proportion parameter. Also, performance was improved from O(n) to O(log(n)) by
using binary search.
The two-sample version of the Cramer-von Mises test is implemented in
scipy.stats.cramervonmises_2samp.
The Alexander-Govern test is implemented in the new function
scipy.stats.alexandergovern.
The new functions scipy.stats.barnard_exact and scipy.stats. boschloo_exact
respectively perform Barnard's exact test and Boschloo's exact test
for 2x2 contingency tables.
The new function scipy.stats.page_trend_test performs Page's test for ordered
alternatives.
The new function scipy.stats.somersd performs Somers' D test for ordinal
association between two variables.
An option, permutations, has been added in scipy.stats.ttest_ind to
perform permutation t-tests. A trim option was also added to perform
a trimmed (Yuen's) t-test.
The alternative parameter was added to the skewtest, kurtosistest,
ranksums, mood, ansari, linregress, and spearmanr functions
to allow one-sided hypothesis testing.
Sample statistics
The new function scipy.stats.differential_entropy estimates the differential
entropy of a continuous distribution from a sample.
The boxcox and boxcox_normmax now allow the user to control the
optimizer used to minimize the negative log-likelihood function.
A new function scipy.stats.contingency.relative_risk calculates the
relative risk, or risk ratio, of a 2x2 contingency table. The object
returned has a method to compute the confidence interval of the relative risk.
Performance improvements in the skew and kurtosis functions achieved
by removal of repeated/redundant calculations.
Substantial performance improvements in scipy.stats.mstats.hdquantiles_sd.
The new function scipy.stats.contingency.association computes several
measures of association for a contingency table: Pearsons contingency
coefficient, Cramer's V, and Tschuprow's T.
The parameter nan_policy was added to scipy.stats.zmap to provide options
for handling the occurrence of nan in the input data.
The parameter ddof was added to scipy.stats.variation and
scipy.stats.mstats.variation.
The parameter weights was added to scipy.stats.gmean.
Statistical Distributions
We now vendor and leverage the Boost C++ library to address a number of
previously reported issues in stats. Notably, beta, binom,
nbinom now have Boost backends, and it is straightforward to leverage
the backend for additional functions.
The skew Cauchy probability distribution has been implemented as
scipy.stats.skewcauchy.
The Zipfian probability distribution has been implemented as
scipy.stats.zipfian.
The new distributions nchypergeom_fisher and nchypergeom_wallenius
implement the Fisher and Wallenius versions of the noncentral hypergeometric
distribution, respectively.
The generalized hyperbolic distribution was added in
scipy.stats.genhyperbolic.
The studentized range distribution was added in scipy.stats.studentized_range.
scipy.stats.argus now has improved handling for small parameter values.
Better argument handling/preparation has resulted in performance improvements for many distributions.
The cosine distribution has added ufuncs for ppf, cdf, sf, and
isf methods including numerical precision improvements at the edges of the
support of the distribution.
An option to fit the distribution to data by the method of moments has been
added to the fit method of the univariate continuous distributions.
Other
scipy.stats.bootstrap has been added to allow estimation of the confidence
interval and standard error of a statistic.
The new function scipy.stats.contingency.crosstab computes a contingency
table (i.e. a table of counts of unique entries) for the given data.
scipy.stats.NumericalInverseHermite enables fast random variate sampling
and percentile point function evaluation of an arbitrary univariate statistical
distribution.
New scipy.stats.qmc module
This new module provides Quasi-Monte Carlo (QMC) generators and associated helper functions.
It provides a generic class scipy.stats.qmc.QMCEngine which defines a QMC
engine/sampler. An engine is state aware: it can be continued, advanced and
reset. 3 base samplers are available:
-
scipy.stats.qmc.Sobolthe well known Sobol low discrepancy sequence. Several warnings have been added to guide the user into properly using this sampler. The sequence is scrambled by default. -
scipy.stats.qmc.Halton: Halton low discrepancy sequence. The sequence is scrambled by default. -
scipy.stats.qmc.LatinHypercube: plain LHS design.
And 2 special samplers are available:
-
scipy.stats.qmc.MultinomialQMC: sampling from a multinomial distribution using any of the basescipy.stats.qmc.QMCEngine. -
scipy.stats.qmc.MultivariateNormalQMC: sampling from a multivariate Normal using any of the basescipy.stats.qmc.QMCEngine.
The module also provide the following helpers:
-
scipy.stats.qmc.discrepancy: assess the quality of a set of points in terms of space coverage. -
scipy.stats.qmc.update_discrepancy: can be used in an optimization loop to construct a good set of points. -
scipy.stats.qmc.scale: easily scale a set of points from (to) the unit interval to (from) a given range.
Deprecated features
scipy.linalg deprecations
-
scipy.linalg.pinv2is deprecated and its functionality is completely subsumed intoscipy.linalg.pinv - Both
rcond,condkeywords ofscipy.linalg.pinvandscipy.linalg.pinvhwere not working and now are deprecated. They are now replaced with functioningatolandrtolkeywords with clear usage.
scipy.spatial deprecations
-
scipy.spatial.distancemetrics expect 1d input vectors but will callnp.squeezeon their inputs to accept any extra length-1 dimensions. That behaviour is now deprecated.
Backwards incompatible changes
Other changes
We now accept and leverage performance improvements from the ahead-of-time
Python-to-C++ transpiler, Pythran, which can be optionally disabled (via
export SCIPY_USE_PYTHRAN=0) but is enabled by default at build time.
There are two changes to the default behavior of scipy.stats.mannwhitenyu:
- For years, use of the default
alternative=Nonewas deprecated; explicitalternativespecification was required. Use of the new default value ofalternative, "two-sided", is now permitted. - Previously, all p-values were based on an asymptotic approximation. Now, for small samples without ties, the p-values returned are exact by default.
Support has been added for PEP 621 (project metadata in pyproject.toml)
We now support a Gitpod environment to reduce the barrier to entry for SciPy
development; for more details see quickstart-gitpod.
Authors
- @endolith
- Jelle Aalbers +
- Adam +
- Tania Allard +
- Sven Baars +
- Max Balandat +
- baumgarc +
- Christoph Baumgarten
- Peter Bell
- Lilian Besson
- Robinson Besson +
- Max Bolingbroke
- Blair Bonnett +
- Jordão Bragantini
- Harm Buisman +
- Evgeni Burovski
- Matthias Bussonnier
- Dominic C
- CJ Carey
- Ramón Casero +
- Chachay +
- charlotte12l +
- Benjamin Curtice Corbett +
- Falcon Dai +
- Ian Dall +
- Terry Davis
- droussea2001 +
- DWesl +
- dwight200 +
- Thomas J. Fan +
- Joseph Fox-Rabinovitz
- Max Frei +
- Laura Gutierrez Funderburk +
- gbonomib +
- Matthias Geier +
- Pradipta Ghosh +
- Ralf Gommers
- Evan H +
- h-vetinari
- Matt Haberland
- Anselm Hahn +
- Alex Henrie
- Piet Hessenius +
- Trever Hines +
- Elisha Hollander +
- Stephan Hoyer
- Tom Hu +
- Kei Ishikawa +
- Julien Jerphanion
- Robert Kern
- Shashank KS +
- Peter Mahler Larsen
- Eric Larson
- Cheng H. Lee +
- Gregory R. Lee
- Jean-Benoist Leger +
- lgfunderburk +
- liam-o-marsh +
- Xingyu Liu +
- Alex Loftus +
- Christian Lorentzen +
- Cong Ma
- Marc +
- MarkPundurs +
- Markus Löning +
- Liam Marsh +
- Nicholas McKibben
- melissawm +
- Jamie Morton
- Andrew Nelson
- Nikola Forró
- Tor Nordam +
- Olivier Gauthé +
- Rohit Pandey +
- Avanindra Kumar Pandeya +
- Tirth Patel
- paugier +
- Alex H. Wagner, PhD +
- Jeff Plourde +
- Ilhan Polat
- pranavrajpal +
- Vladyslav Rachek
- Bharat Raghunathan
- Recursing +
- Tyler Reddy
- Lucas Roberts
- Gregor Robinson +
- Pamphile Roy +
- Atsushi Sakai
- Benjamin Santos
- Martin K. Scherer +
- Thomas Schmelzer +
- Daniel Scott +
- Sebastian Wallkötter +
- serge-sans-paille +
- Namami Shanker +
- Masashi Shibata +
- Alexandre de Siqueira +
- Albert Steppi +
- Adam J. Stewart +
- Kai Striega
- Diana Sukhoverkhova
- Søren Fuglede Jørgensen
- Mike Taves
- Dan Temkin +
- Nicolas Tessore +
- tsubota20 +
- Robert Uhl
- christos val +
- Bas van Beek +
- Ashutosh Varma +
- Jose Vazquez +
- Sebastiano Vigna
- Aditya Vijaykumar
- VNMabus
- Arthur Volant +
- Samuel Wallan
- Stefan van der Walt
- Warren Weckesser
- Anreas Weh
- Josh Wilson
- Rory Yorke
- Egor Zemlyanoy
- Marc Zoeller +
- zoj613 +
- 秋纫 +
A total of 126 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.
- Python
Published by tylerjereddy almost 5 years ago
scipy - SciPy 1.6.3
SciPy 1.6.3 Release Notes
SciPy 1.6.3 is a bug-fix release with no new features
compared to 1.6.2.
Authors
- Peter Bell
- Ralf Gommers
- Matt Haberland
- Peter Mahler Larsen
- Tirth Patel
- Tyler Reddy
- Pamphile ROY +
- Xingyu Liu +
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.
- Python
Published by tylerjereddy about 5 years ago
scipy - SciPy 1.6.2
SciPy 1.6.2 Release Notes
SciPy 1.6.2 is a bug-fix release with no new features
compared to 1.6.1. This is also the first SciPy release
to place upper bounds on some dependencies to improve
the long-term repeatability of source builds.
Authors
- Pradipta Ghosh +
- Tyler Reddy
- Ralf Gommers
- Martin K. Scherer +
- Robert Uhl
- Warren Weckesser
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.
- Python
Published by tylerjereddy about 5 years ago
scipy - SciPy 1.6.1
SciPy 1.6.1 Release Notes
SciPy 1.6.1 is a bug-fix release with no new features
compared to 1.6.0.
Please note that for SciPy wheels to correctly install with pip on
macOS 11, pip >= 20.3.3 is needed.
Authors
- Peter Bell
- Evgeni Burovski
- CJ Carey
- Ralf Gommers
- Peter Mahler Larsen
- Cheng H. Lee +
- Cong Ma
- Nicholas McKibben
- Nikola Forró
- Tyler Reddy
- Warren Weckesser
A total of 11 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.
- Python
Published by tylerjereddy over 5 years ago
scipy - SciPy 1.6.0
SciPy 1.6.0 Release Notes
SciPy 1.6.0 is the culmination of 6 months of hard work. It contains
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.ndimageimprovements: Fixes and ehancements to boundary extension modes for interpolation functions. Support for complex-valued inputs in many filtering and interpolation functions. Newgrid_modeoption forscipy.ndimage.zoomto enable results consistent with scikit-image'srescale. -
scipy.optimize.linproghas fast, new methods for large, sparse problems from theHiGHSlibrary. -
scipy.statsimprovements 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_annealingaccept_rejectcalculation that caused uphill jumps to be accepted less frequently. - The time required for (un)pickling of
scipy.stats.rv_continuous,scipy.stats.rv_discrete, andscipy.stats.rv_frozenhas 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 +
- Matti Picus
- 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 122 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.
- Python
Published by tylerjereddy over 5 years ago
scipy - SciPy 1.6.0rc2
SciPy 1.6.0 Release Notes
note: Scipy 1.6.0 is not released yet!
SciPy 1.6.0 is the culmination of 6 months of hard work. It contains
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.ndimageimprovements: Fixes and ehancements to boundary extension modes for interpolation functions. Support for complex-valued inputs in many filtering and interpolation functions. Newgrid_modeoption forscipy.ndimage.zoomto enable results consistent with scikit-image'srescale. -
scipy.optimize.linproghas fast, new methods for large, sparse problems from theHiGHSlibrary. -
scipy.statsimprovements 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_annealingaccept_rejectcalculation that caused uphill jumps to be accepted less frequently. - The time required for (un)pickling of
scipy.stats.rv_continuous,scipy.stats.rv_discrete, andscipy.stats.rv_frozenhas 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 +
- Matti Picus
- 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 122 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.
- Python
Published by tylerjereddy over 5 years ago
scipy - SciPy 1.6.0rc1
SciPy 1.6.0 Release Notes
Note: Scipy 1.6.0 is not released yet!
SciPy 1.6.0 is the culmination of 6 months of hard work. It contains
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.ndimageimprovements: Fixes and ehancements to boundary extension modes for interpolation functions. Support for complex-valued inputs in many filtering and interpolation functions. Newgrid_modeoption forscipy.ndimage.zoomto enable results consistent with scikit-image'srescale. -
scipy.optimize.linproghas fast, new methods for large, sparse problems from theHiGHSlibrary. scipy.statsimprovements 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_annealingaccept_rejectcalculation that caused uphill jumps to be accepted less frequently. - The time required for (un)pickling of
scipy.stats.rv_continuous,scipy.stats.rv_discrete, andscipy.stats.rv_frozenhas 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.
- Python
Published by tylerjereddy over 5 years ago
scipy - SciPy 1.5.4
SciPy 1.5.4 Release Notes
SciPy 1.5.4 is a bug-fix release with no new features
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.
- Python
Published by tylerjereddy over 5 years ago
scipy - SciPy 1.5.3
SciPy 1.5.3 Release Notes
SciPy 1.5.3 is a bug-fix release with no new features
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.
- Python
Published by tylerjereddy over 5 years ago
scipy - SciPy 1.5.2
SciPy 1.5.2 Release Notes
SciPy 1.5.2 is a bug-fix release with no new features
compared to 1.5.1.
Authors
- Peter Bell
- Tobias Biester +
- Evgeni Burovski
- Thomas A Caswell
- Ralf Gommers
- Sturla Molden
- Andrew Nelson
- ofirr +
- Sambit Panda
- Ilhan Polat
- Tyler Reddy
- Atsushi Sakai
- Pauli Virtanen
A total of 13 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.
- Python
Published by tylerjereddy almost 6 years ago
scipy - SciPy 1.5.1
SciPy 1.5.1 Release Notes
SciPy 1.5.1 is a bug-fix release with no new features
compared to 1.5.0. In particular, an issue where DLL loading
can fail for SciPy wheels on Windows with Python 3.6 has been
fixed.
Authors
- Peter Bell
- Loïc Estève
- Philipp Thölke +
- Tyler Reddy
- Paul van Mulbregt
- Pauli Virtanen
- Warren Weckesser
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.
- Python
Published by tylerjereddy almost 6 years ago
scipy - SciPy 1.5.0
SciPy 1.5.0 Release Notes
SciPy 1.5.0 is the culmination of 6 months of hard work. It contains
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.5.x branch, and on adding new features on the master branch.
This release requires Python 3.6+ and NumPy 1.14.5 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- wrappers for more than a dozen new
LAPACKroutines are now available inscipy.linalg.lapack - Improved support for leveraging 64-bit integer size from linear algebra backends
- addition of the probability distribution for two-sided one-sample Kolmogorov-Smirnov tests
New features
scipy.cluster improvements
Initialization of scipy.cluster.vq.kmeans2 using minit="++" had a
quadratic complexity in the number of samples. It has been improved, resulting
in a much faster initialization with quasi-linear complexity.
scipy.cluster.hierarchy.dendrogram now respects the matplotlib color
palette
scipy.fft improvements
A new keyword-only argument plan is added to all FFT functions in this
module. It is reserved for passing in a precomputed plan from libraries
providing a FFT backend (such as PyFFTW and mkl-fft), and it is
currently not used in SciPy.
scipy.integrate improvements
scipy.interpolate improvements
scipy.io improvements
scipy.io.wavfile error messages are more explicit about what's wrong, and
extraneous bytes at the ends of files are ignored instead of raising an error
when the data has successfully been read.
scipy.io.loadmat gained a simplify_cells parameter, which if set to
True simplifies the structure of the return value if the .mat file
contains cell arrays.
pathlib.Path objects are now supported in scipy.io Matrix Market I/O
functions
scipy.linalg improvements
scipy.linalg.eigh has been improved. Now various LAPACK drivers can be
selected at will and also subsets of eigenvalues can be requested via
subset_by_value keyword. Another keyword subset_by_index is introduced.
Keywords turbo and eigvals are deprecated.
Similarly, standard and generalized Hermitian eigenvalue LAPACK routines
?<sy/he>evx are added and existing ones now have full _lwork
counterparts.
Wrappers for the following LAPACK routines have been added to
scipy.linalg.lapack:
-
?getc2: computes the LU factorization of a general matrix with complete pivoting -
?gesc2: solves a linear system given an LU factorization from?getc2 -
?gejsv: computes the singular value decomposition of a general matrix with higher accuracy calculation of tiny singular values and their corresponding singular vectors -
?geqrfp: computes the QR factorization of a general matrix with non-negative elements on the diagonal of R -
?gtsvx: solves a linear system with general tridiagonal matrix -
?gttrf: computes the LU factorization of a tridiagonal matrix -
?gttrs: solves a linear system given an LU factorization from?gttrf -
?ptsvx: solves a linear system with symmetric positive definite tridiagonal matrix -
?pttrf: computes the LU factorization of a symmetric positive definite tridiagonal matrix -
?pttrs: solves a linear system given an LU factorization from?pttrf -
?pteqr: computes the eigenvectors and eigenvalues of a positive definite tridiagonal matrix -
?tbtrs: solves a linear system with a triangular banded matrix -
?csd: computes the Cosine Sine decomposition of an orthogonal/unitary matrix
Generalized QR factorization routines (?geqrf) now have full _lwork
counterparts.
scipy.linalg.cossin Cosine Sine decomposition of unitary matrices has been
added.
The function scipy.linalg.khatri_rao, which computes the Khatri-Rao product,
was added.
The new function scipy.linalg.convolution_matrix constructs the Toeplitz
matrix representing one-dimensional convolution.
scipy.ndimage improvements
scipy.optimize improvements
The finite difference numerical differentiation used in various minimize
methods that use gradients has several new features:
- 2-point, 3-point, or complex step finite differences can be used. Previously only a 2-step finite difference was available.
- There is now the possibility to use a relative step size, previously only an absolute step size was available.
- If the
minimizemethod uses bounds the numerical differentiation strictly obeys those limits. - The numerical differentiation machinery now makes use of a simple cache, which in some cases can reduce the number of function evaluations.
-
minimize'smethod= 'powell'now supports simple bound constraints
There have been several improvements to scipy.optimize.linprog:
- The
linprogbenchmark suite has been expanded considerably. -
linprog's dense pivot-based redundancy removal routine and sparse presolve are faster - When
scikit-sparseis available, solving sparse problems withmethod='interior-point'is faster
The caching of values when optimizing a function returning both value and
gradient together has been improved, avoiding repeated function evaluations
when using a HessianApproximation such as BFGS.
differential_evolution can now use the modern np.random.Generator as
well as the legacy np.random.RandomState as a seed.
scipy.signal improvements
A new optional argument include_nyquist is added to freqz functions in
this module. It is used for including the last frequency (Nyquist frequency).
scipy.signal.find_peaks_cwt now accepts a window_size parameter for the
size of the window used to calculate the noise floor.
scipy.sparse improvements
Outer indexing is now faster when using a 2d column vector to select column indices.
scipy.sparse.lil.tocsr is faster
Fixed/improved comparisons between pydata sparse arrays and sparse matrices
BSR format sparse multiplication performance has been improved.
scipy.sparse.linalg.LinearOperator has gained the new ndim class
attribute
scipy.spatial improvements
scipy.spatial.geometric_slerp has been added to enable geometric
spherical linear interpolation on an n-sphere
scipy.spatial.SphericalVoronoi now supports calculation of region areas in 2D
and 3D cases
The tree building algorithm used by cKDTree has improved from quadratic
worst case time complexity to loglinear. Benchmarks are also now available for
building and querying of balanced/unbalanced kd-trees.
scipy.special improvements
The following functions now have Cython interfaces in cython_special:
-
scipy.special.erfinv -
scipy.special.erfcinv -
scipy.special.spherical_jn -
scipy.special.spherical_yn -
scipy.special.spherical_in -
scipy.special.spherical_kn
scipy.special.log_softmax has been added to calculate the logarithm of softmax
function. It provides better accuracy than log(scipy.special.softmax(x)) for
inputs that make softmax saturate.
scipy.stats improvements
The function for generating random samples in scipy.stats.dlaplace has been
improved. The new function is approximately twice as fast with a memory
footprint reduction between 25 % and 60 % (see gh-11069).
scipy.stats functions that accept a seed for reproducible calculations using
random number generation (e.g. random variates from distributions) can now use
the modern np.random.Generator as well as the legacy
np.random.RandomState as a seed.
The axis parameter was added to scipy.stats.rankdata. This allows slices
of an array along the given axis to be ranked independently.
The axis parameter was added to scipy.stats.f_oneway, allowing it to
compute multiple one-way ANOVA tests for data stored in n-dimensional
arrays. The performance of f_oneway was also improved for some cases.
The PDF and CDF methods for stats.geninvgauss are now significantly faster
as the numerical integration to calculate the CDF uses a Cython based
LowLevelCallable.
Moments of the normal distribution (scipy.stats.norm) are now calculated using
analytical formulas instead of numerical integration for greater speed and
accuracy
Moments and entropy trapezoidal distribution (scipy.stats.trapz) are now
calculated using analytical formulas instead of numerical integration for
greater speed and accuracy
Methods of the truncated normal distribution (scipy.stats.truncnorm),
especially _rvs, are significantly faster after a complete rewrite.
The fit method of the Laplace distribution, scipy.stats.laplace, now uses
the analytical formulas for the maximum likelihood estimates of the parameters.
Generation of random variates is now thread safe for all SciPy distributions.
3rd-party distributions may need to modify the signature of the _rvs()
method to conform to _rvs(self, ..., size=None, random_state=None). (A
one-time VisibleDeprecationWarning is emitted when using non-conformant
distributions.)
The Kolmogorov-Smirnov two-sided test statistic distribution
(scipy.stats.kstwo) was added. Calculates the distribution of the K-S
two-sided statistic D_n for a sample of size n, using a mixture of exact
and asymptotic algorithms.
The new function median_abs_deviation replaces the deprecated
median_absolute_deviation.
The wilcoxon function now computes the p-value for Wilcoxon's signed rank
test using the exact distribution for inputs up to length 25. The function has
a new mode parameter to specify how the p-value is to be computed. The
default is "auto", which uses the exact distribution for inputs up to length
25 and the normal approximation for larger inputs.
Added a new Cython-based implementation to evaluate guassian kernel estimates,
which should improve the performance of gaussian_kde
The winsorize function now has a nan_policy argument for refined
handling of nan input values.
The binned_statistic_dd function with statistic="std" performance was
improved by ~4x.
scipy.stats.kstest(rvs, cdf,...) now handles both one-sample and
two-sample testing. The one-sample variation uses scipy.stats.ksone
(or scipy.stats.kstwo with back off to scipy.stats.kstwobign) to calculate
the p-value. The two-sample variation, invoked if cdf is array_like, uses
an algorithm described by Hodges to compute the probability directly, only
backing off to scipy.stats.kstwo in case of overflow. The result in both
cases is more accurate p-values, especially for two-sample testing with
smaller (or quite different) sizes.
scipy.stats.maxwell performance improvements include a 20 % speed up for
fit()and 5 % forpdf()`
scipy.stats.shapiro and scipy.stats.jarque_bera now return a named tuple
for greater consistency with other stats functions
Deprecated features
scipy deprecations
scipy.special changes
The bdtr, bdtrc, and bdtri functions are deprecating non-negative
non-integral n arguments.
scipy.stats changes
The function median_absolute_deviation is deprecated. Use
median_abs_deviation instead.
The use of the string "raw" with the scale parameter of iqr is
deprecated. Use scale=1 instead.
Backwards incompatible changes
scipy.interpolate changes
scipy.linalg changes
The output signatures of ?syevr, ?heevr have been changed from
w, v, info to w, v, m, isuppz, info
The order of output arguments w, v of <sy/he>{gv, gvd, gvx} is
swapped.
scipy.signal changes
The output length of scipy.signal.upfirdn has been corrected, resulting
outputs may now be shorter for some combinations of up/down ratios and input
signal and filter lengths.
scipy.signal.resample now supports a domain keyword argument for
specification of time or frequency domain input.
scipy.stats changes
Other changes
Improved support for leveraging 64-bit integer size from linear algebra backends in several parts of the SciPy codebase.
Shims designed to ensure the compatibility of SciPy with Python 2.7 have now been removed.
Many warnings due to unused imports and unused assignments have been addressed.
Many usage examples were added to function docstrings, and many input validations and intuitive exception messages have been added throughout the codebase.
Early stage adoption of type annotations in a few parts of the codebase
Authors
- @endolith
- Hameer Abbasi
- ADmitri +
- Wesley Alves +
- Berkay Antmen +
- Sylwester Arabas +
- Arne Küderle +
- Christoph Baumgarten
- Peter Bell
- Felix Berkenkamp
- Jordão Bragantini +
- Clemens Brunner +
- Evgeni Burovski
- Matthias Bussonnier +
- CJ Carey
- Derrick Chambers +
- Leander Claes +
- Christian Clauss
- Luigi F. Cruz +
- dankleeman
- Andras Deak
- Milad Sadeghi DM +
- jeremie du boisberranger +
- Stefan Endres
- Malte Esders +
- Leo Fang +
- felixhekhorn +
- Isuru Fernando
- Andrew Fowlie
- Lakshay Garg +
- Gaurav Gijare +
- Ralf Gommers
- Emmanuelle Gouillart +
- Kevin Green +
- Martin Grignard +
- Maja Gwozdz
- Sturla Molden
- gyu-don +
- Matt Haberland
- hakeemo +
- Charles Harris
- Alex Henrie
- Santi Hernandez +
- William Hickman +
- Till Hoffmann +
- Joseph T. Iosue +
- Anany Shrey Jain
- Jakob Jakobson
- Charles Jekel +
- Julien Jerphanion +
- Jiacheng-Liu +
- Christoph Kecht +
- Paul Kienzle +
- Reidar Kind +
- Dmitry E. Kislov +
- Konrad +
- Konrad0
- Takuya KOUMURA +
- Krzysztof Pióro
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory Lee +
- Gregory R. Lee
- Chelsea Liu
- Cong Ma +
- Kevin Mader +
- Maja Gwóźdź +
- Alex Marvin +
- Matthias Kümmerer
- Nikolay Mayorov
- Mazay0 +
- G. D. McBain
- Nicholas McKibben +
- Sabrina J. Mielke +
- Sebastian J. Mielke +
- Miloš Komarčević +
- Shubham Mishra +
- Santiago M. Mola +
- Grzegorz Mrukwa +
- Peyton Murray
- Andrew Nelson
- Nico Schlömer
- nwjenkins +
- odidev +
- Sambit Panda
- Vikas Pandey +
- Rick Paris +
- Harshal Prakash Patankar +
- Balint Pato +
- Matti Picus
- Ilhan Polat
- poom +
- Siddhesh Poyarekar
- Vladyslav Rachek +
- Bharat Raghunathan
- Manu Rajput +
- Tyler Reddy
- Andrew Reed +
- Lucas Roberts
- Ariel Rokem
- Heshy Roskes
- Matt Ruffalo
- Atsushi Sakai +
- Benjamin Santos +
- Christoph Schock +
- Lisa Schwetlick +
- Chris Simpson +
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- Kale-ab Tessera +
- Seth Troisi +
- Robert Uhl +
- Paul van Mulbregt
- Vasiliy +
- Isaac Virshup +
- Pauli Virtanen
- Shakthi Visagan +
- Jan Vleeshouwers +
- Sam Wallan +
- Lijun Wang +
- Warren Weckesser
- Richard Weiss +
- wenhui-prudencemed +
- Eric Wieser
- Josh Wilson
- James Wright +
- Ruslan Yevdokymov +
- Ziyao Zhang +
A total of 129 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.
- Python
Published by tylerjereddy almost 6 years ago
scipy - SciPy 1.5.0rc2
SciPy 1.5.0 Release Notes
Note Scipy 1.5.0 is not released yet!
SciPy 1.5.0 is the culmination of 6 months of hard work. It contains
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.5.x branch, and on adding new features on the master branch.
This release requires Python 3.6+ and NumPy 1.14.5 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- wrappers for more than a dozen new
LAPACKroutines are now available inscipy.linalg.lapack - Improved support for leveraging 64-bit integer size from linear algebra backends
- addition of the probability distribution for two-sided one-sample Kolmogorov-Smirnov tests
New features
scipy.cluster improvements
Initialization of scipy.cluster.vq.kmeans2 using minit="++" had a
quadratic complexity in the number of samples. It has been improved, resulting
in a much faster initialization with quasi-linear complexity.
scipy.cluster.hierarchy.dendrogram now respects the matplotlib color
palette
scipy.fft improvements
A new keyword-only argument plan is added to all FFT functions in this
module. It is reserved for passing in a precomputed plan from libraries
providing a FFT backend (such as PyFFTW and mkl-fft), and it is
currently not used in SciPy.
scipy.integrate improvements
scipy.interpolate improvements
scipy.io improvements
scipy.io.wavfile error messages are more explicit about what's wrong, and
extraneous bytes at the ends of files are ignored instead of raising an error
when the data has successfully been read.
scipy.io.loadmat gained a simplify_cells parameter, which if set to
True simplifies the structure of the return value if the .mat file
contains cell arrays.
pathlib.Path objects are now supported in scipy.io Matrix Market I/O
functions
scipy.linalg improvements
scipy.linalg.eigh has been improved. Now various LAPACK drivers can be
selected at will and also subsets of eigenvalues can be requested via
subset_by_value keyword. Another keyword subset_by_index is introduced.
Keywords turbo and eigvals are deprecated.
Similarly, standard and generalized Hermitian eigenvalue LAPACK routines
?<sy/he>evx are added and existing ones now have full _lwork
counterparts.
Wrappers for the following LAPACK routines have been added to
scipy.linalg.lapack:
-
?getc2: computes the LU factorization of a general matrix with complete pivoting -
?gesc2: solves a linear system given an LU factorization from?getc2 -
?gejsv: computes the singular value decomposition of a general matrix with higher accuracy calculation of tiny singular values and their corresponding singular vectors -
?geqrfp: computes the QR factorization of a general matrix with non-negative elements on the diagonal of R -
?gtsvx: solves a linear system with general tridiagonal matrix -
?gttrf: computes the LU factorization of a tridiagonal matrix -
?gttrs: solves a linear system given an LU factorization from?gttrf -
?ptsvx: solves a linear system with symmetric positive definite tridiagonal matrix -
?pttrf: computes the LU factorization of a symmetric positive definite tridiagonal matrix -
?pttrs: solves a linear system given an LU factorization from?pttrf -
?pteqr: computes the eigenvectors and eigenvalues of a positive definite tridiagonal matrix -
?tbtrs: solves a linear system with a triangular banded matrix -
?csd: computes the Cosine Sine decomposition of an orthogonal/unitary matrix
Generalized QR factorization routines (?geqrf) now have full _lwork
counterparts.
scipy.linalg.cossin Cosine Sine decomposition of unitary matrices has been
added.
The function scipy.linalg.khatri_rao, which computes the Khatri-Rao product,
was added.
The new function scipy.linalg.convolution_matrix constructs the Toeplitz
matrix representing one-dimensional convolution.
scipy.ndimage improvements
scipy.optimize improvements
The finite difference numerical differentiation used in various minimize
methods that use gradients has several new features:
- 2-point, 3-point, or complex step finite differences can be used. Previously only a 2-step finite difference was available.
- There is now the possibility to use a relative step size, previously only an absolute step size was available.
- If the
minimizemethod uses bounds the numerical differentiation strictly obeys those limits. - The numerical differentiation machinery now makes use of a simple cache, which in some cases can reduce the number of function evaluations.
-
minimize'smethod= 'powell'now supports simple bound constraints
There have been several improvements to scipy.optimize.linprog:
- The
linprogbenchmark suite has been expanded considerably. -
linprog's dense pivot-based redundancy removal routine and sparse presolve are faster - When
scikit-sparseis available, solving sparse problems withmethod='interior-point'is faster
The caching of values when optimizing a function returning both value and
gradient together has been improved, avoiding repeated function evaluations
when using a HessianApproximation such as BFGS.
differential_evolution can now use the modern np.random.Generator as
well as the legacy np.random.RandomState as a seed.
scipy.signal improvements
A new optional argument include_nyquist is added to freqz functions in
this module. It is used for including the last frequency (Nyquist frequency).
scipy.signal.find_peaks_cwt now accepts a window_size parameter for the
size of the window used to calculate the noise floor.
scipy.sparse improvements
Outer indexing is now faster when using a 2d column vector to select column indices.
scipy.sparse.lil.tocsr is faster
Fixed/improved comparisons between pydata sparse arrays and sparse matrices
BSR format sparse multiplication performance has been improved.
scipy.sparse.linalg.LinearOperator has gained the new ndim class
attribute
scipy.spatial improvements
scipy.spatial.geometric_slerp has been added to enable geometric
spherical linear interpolation on an n-sphere
scipy.spatial.SphericalVoronoi now supports calculation of region areas in 2D
and 3D cases
The tree building algorithm used by cKDTree has improved from quadratic
worst case time complexity to loglinear. Benchmarks are also now available for
building and querying of balanced/unbalanced kd-trees.
scipy.special improvements
The following functions now have Cython interfaces in cython_special:
-
scipy.special.erfinv -
scipy.special.erfcinv -
scipy.special.spherical_jn -
scipy.special.spherical_yn -
scipy.special.spherical_in -
scipy.special.spherical_kn
scipy.special.log_softmax has been added to calculate the logarithm of softmax
function. It provides better accuracy than log(scipy.special.softmax(x)) for
inputs that make softmax saturate.
scipy.stats improvements
The function for generating random samples in scipy.stats.dlaplace has been
improved. The new function is approximately twice as fast with a memory
footprint reduction between 25 % and 60 % (see gh-11069).
scipy.stats functions that accept a seed for reproducible calculations using
random number generation (e.g. random variates from distributions) can now use
the modern np.random.Generator as well as the legacy
np.random.RandomState as a seed.
The axis parameter was added to scipy.stats.rankdata. This allows slices
of an array along the given axis to be ranked independently.
The axis parameter was added to scipy.stats.f_oneway, allowing it to
compute multiple one-way ANOVA tests for data stored in n-dimensional
arrays. The performance of f_oneway was also improved for some cases.
The PDF and CDF methods for stats.geninvgauss are now significantly faster
as the numerical integration to calculate the CDF uses a Cython based
LowLevelCallable.
Moments of the normal distribution (scipy.stats.norm) are now calculated using
analytical formulas instead of numerical integration for greater speed and
accuracy
Moments and entropy trapezoidal distribution (scipy.stats.trapz) are now
calculated using analytical formulas instead of numerical integration for
greater speed and accuracy
Methods of the truncated normal distribution (scipy.stats.truncnorm),
especially _rvs, are significantly faster after a complete rewrite.
The fit method of the Laplace distribution, scipy.stats.laplace, now uses
the analytical formulas for the maximum likelihood estimates of the parameters.
Generation of random variates is now thread safe for all SciPy distributions.
3rd-party distributions may need to modify the signature of the _rvs()
method to conform to _rvs(self, ..., size=None, random_state=None). (A
one-time VisibleDeprecationWarning is emitted when using non-conformant
distributions.)
The Kolmogorov-Smirnov two-sided test statistic distribution
(scipy.stats.kstwo) was added. Calculates the distribution of the K-S
two-sided statistic D_n for a sample of size n, using a mixture of exact
and asymptotic algorithms.
The new function median_abs_deviation replaces the deprecated
median_absolute_deviation.
The wilcoxon function now computes the p-value for Wilcoxon's signed rank
test using the exact distribution for inputs up to length 25. The function has
a new mode parameter to specify how the p-value is to be computed. The
default is "auto", which uses the exact distribution for inputs up to length
25 and the normal approximation for larger inputs.
Added a new Cython-based implementation to evaluate guassian kernel estimates,
which should improve the performance of gaussian_kde
The winsorize function now has a nan_policy argument for refined
handling of nan input values.
The binned_statistic_dd function with statistic="std" performance was
improved by ~4x.
scipy.stats.kstest(rvs, cdf,...) now handles both one-sample and
two-sample testing. The one-sample variation uses scipy.stats.ksone
(or scipy.stats.kstwo with back off to scipy.stats.kstwobign) to calculate
the p-value. The two-sample variation, invoked if cdf is array_like, uses
an algorithm described by Hodges to compute the probability directly, only
backing off to scipy.stats.kstwo in case of overflow. The result in both
cases is more accurate p-values, especially for two-sample testing with
smaller (or quite different) sizes.
scipy.stats.maxwell performance improvements include a 20 % speed up for
fit()and 5 % forpdf()`
scipy.stats.shapiro and scipy.stats.jarque_bera now return a named tuple
for greater consistency with other stats functions
Deprecated features
scipy deprecations
scipy.special changes
The bdtr, bdtrc, and bdtri functions are deprecating non-negative
non-integral n arguments.
scipy.stats changes
The function median_absolute_deviation is deprecated. Use
median_abs_deviation instead.
The use of the string "raw" with the scale parameter of iqr is
deprecated. Use scale=1 instead.
Backwards incompatible changes
scipy.interpolate changes
scipy.linalg changes
The output signatures of ?syevr, ?heevr have been changed from
w, v, info to w, v, m, isuppz, info
The order of output arguments w, v of <sy/he>{gv, gvd, gvx} is
swapped.
scipy.signal changes
The output length of scipy.signal.upfirdn has been corrected, resulting
outputs may now be shorter for some combinations of up/down ratios and input
signal and filter lengths.
scipy.signal.resample now supports a domain keyword argument for
specification of time or frequency domain input.
scipy.stats changes
Other changes
Improved support for leveraging 64-bit integer size from linear algebra backends in several parts of the SciPy codebase.
Shims designed to ensure the compatibility of SciPy with Python 2.7 have now been removed.
Many warnings due to unused imports and unused assignments have been addressed.
Many usage examples were added to function docstrings, and many input validations and intuitive exception messages have been added throughout the codebase.
Early stage adoption of type annotations in a few parts of the codebase
Authors
- @endolith
- Hameer Abbasi
- ADmitri +
- Wesley Alves +
- Berkay Antmen +
- Sylwester Arabas +
- Arne Küderle +
- Christoph Baumgarten
- Peter Bell
- Felix Berkenkamp
- Jordão Bragantini +
- Clemens Brunner +
- Evgeni Burovski
- Matthias Bussonnier +
- CJ Carey
- Derrick Chambers +
- Leander Claes +
- Christian Clauss
- Luigi F. Cruz +
- dankleeman
- Andras Deak
- Milad Sadeghi DM +
- jeremie du boisberranger +
- Stefan Endres
- Malte Esders +
- Leo Fang +
- felixhekhorn +
- Isuru Fernando
- Andrew Fowlie
- Lakshay Garg +
- Gaurav Gijare +
- Ralf Gommers
- Emmanuelle Gouillart +
- Kevin Green +
- Martin Grignard +
- Maja Gwozdz
- Sturla Molden
- gyu-don +
- Matt Haberland
- hakeemo +
- Charles Harris
- Alex Henrie
- Santi Hernandez +
- William Hickman +
- Till Hoffmann +
- Joseph T. Iosue +
- Anany Shrey Jain
- Jakob Jakobson
- Charles Jekel +
- Julien Jerphanion +
- Jiacheng-Liu +
- Christoph Kecht +
- Paul Kienzle +
- Reidar Kind +
- Dmitry E. Kislov +
- Konrad +
- Konrad0
- Takuya KOUMURA +
- Krzysztof Pióro
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory Lee +
- Gregory R. Lee
- Chelsea Liu
- Cong Ma +
- Kevin Mader +
- Maja Gwóźdź +
- Alex Marvin +
- Matthias Kümmerer
- Nikolay Mayorov
- Mazay0 +
- G. D. McBain
- Nicholas McKibben +
- Sabrina J. Mielke +
- Sebastian J. Mielke +
- Miloš Komarčević +
- Shubham Mishra +
- Santiago M. Mola +
- Grzegorz Mrukwa +
- Peyton Murray
- Andrew Nelson
- Nico Schlömer
- nwjenkins +
- odidev +
- Sambit Panda
- Vikas Pandey +
- Rick Paris +
- Harshal Prakash Patankar +
- Balint Pato +
- Matti Picus
- Ilhan Polat
- poom +
- Siddhesh Poyarekar
- Vladyslav Rachek +
- Bharat Raghunathan
- Manu Rajput +
- Tyler Reddy
- Andrew Reed +
- Lucas Roberts
- Ariel Rokem
- Heshy Roskes
- Matt Ruffalo
- Atsushi Sakai +
- Benjamin Santos +
- Christoph Schock +
- Lisa Schwetlick +
- Chris Simpson +
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- Kale-ab Tessera +
- Seth Troisi +
- Robert Uhl +
- Paul van Mulbregt
- Vasiliy +
- Isaac Virshup +
- Pauli Virtanen
- Shakthi Visagan +
- Jan Vleeshouwers +
- Sam Wallan +
- Lijun Wang +
- Warren Weckesser
- Richard Weiss +
- wenhui-prudencemed +
- Eric Wieser
- Josh Wilson
- James Wright +
- Ruslan Yevdokymov +
- Ziyao Zhang +
A total of 129 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.
- Python
Published by tylerjereddy almost 6 years ago
scipy - SciPy 1.5.0rc1
SciPy 1.5.0 Release Notes
Note: Scipy 1.5.0 is not released yet!
SciPy 1.5.0 is the culmination of 6 months of hard work. It contains
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.5.x branch, and on adding new features on the master branch.
This release requires Python 3.6+ and NumPy 1.14.5 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- wrappers for more than a dozen new
LAPACKroutines are now available inscipy.linalg.lapack - Improved support for leveraging 64-bit integer size from linear algebra backends
- addition of the probability distribution for two-sided one-sample Kolmogorov-Smirnov tests
New features
scipy.cluster improvements
Initialization of scipy.cluster.vq.kmeans2 using minit="++" had a
quadratic complexity in the number of samples. It has been improved, resulting
in a much faster initialization with quasi-linear complexity.
scipy.cluster.hierarchy.dendrogram now respects the matplotlib color
palette
scipy.fft improvements
A new keyword-only argument plan is added to all FFT functions in this
module. It is reserved for passing in a precomputed plan from libraries
providing a FFT backend (such as PyFFTW and mkl-fft), and it is
currently not used in SciPy.
scipy.integrate improvements
scipy.interpolate improvements
scipy.io improvements
scipy.io.wavfile error messages are more explicit about what's wrong, and
extraneous bytes at the ends of files are ignored instead of raising an error
when the data has successfully been read.
scipy.io.loadmat gained a simplify_cells parameter, which if set to
True simplifies the structure of the return value if the .mat file
contains cell arrays.
pathlib.Path objects are now supported in scipy.io Matrix Market I/O
functions
scipy.linalg improvements
scipy.linalg.eigh has been improved. Now various LAPACK drivers can be
selected at will and also subsets of eigenvalues can be requested via
subset_by_value keyword. Another keyword subset_by_index is introduced.
Keywords turbo and eigvals are deprecated.
Similarly, standard and generalized Hermitian eigenvalue LAPACK routines
?<sy/he>evx are added and existing ones now have full _lwork
counterparts.
Wrappers for the following LAPACK routines have been added to
scipy.linalg.lapack:
?getc2: computes the LU factorization of a general matrix with complete pivoting?gesc2: solves a linear system given an LU factorization from?getc2?gejsv: computes the singular value decomposition of a general matrix with higher accuracy calculation of tiny singular values and their corresponding singular vectors?geqrfp: computes the QR factorization of a general matrix with non-negative elements on the diagonal of R?gtsvx: solves a linear system with general tridiagonal matrix?gttrf: computes the LU factorization of a tridiagonal matrix?gttrs: solves a linear system given an LU factorization from?gttrf?ptsvx: solves a linear system with symmetric positive definite tridiagonal matrix?pttrf: computes the LU factorization of a symmetric positive definite tridiagonal matrix?pttrs: solves a linear system given an LU factorization from?pttrf?pteqr: computes the eigenvectors and eigenvalues of a positive definite tridiagonal matrix?tbtrs: solves a linear system with a triangular banded matrix?csd: computes the Cosine Sine decomposition of an orthogonal/unitary matrix
Generalized QR factorization routines (?geqrf) now have full _lwork
counterparts.
scipy.linalg.cossin Cosine Sine decomposition of unitary matrices has been
added.
The function scipy.linalg.khatri_rao, which computes the Khatri-Rao product,
was added.
The new function scipy.linalg.convolution_matrix constructs the Toeplitz
matrix representing one-dimensional convolution.
scipy.ndimage improvements
scipy.optimize improvements
The finite difference numerical differentiation used in various minimize
methods that use gradients has several new features:
- 2-point, 3-point, or complex step finite differences can be used. Previously only a 2-step finite difference was available.
- There is now the possibility to use a relative step size, previously only an absolute step size was available.
- If the
minimizemethod uses bounds the numerical differentiation strictly obeys those limits. - The numerical differentiation machinery now makes use of a simple cache, which in some cases can reduce the number of function evaluations.
-
minimize'smethod= 'powell'now supports simple bound constraints
There have been several improvements to scipy.optimize.linprog:
- The
linprogbenchmark suite has been expanded considerably. -
linprog's dense pivot-based redundancy removal routine and sparse presolve are faster - When
scikit-sparseis available, solving sparse problems withmethod='interior-point'is faster
The caching of values when optimizing a function returning both value and
gradient together has been improved, avoiding repeated function evaluations
when using a HessianApproximation such as BFGS.
differential_evolution can now use the modern np.random.Generator as
well as the legacy np.random.RandomState as a seed.
scipy.signal improvements
A new optional argument include_nyquist is added to freqz functions in
this module. It is used for including the last frequency (Nyquist frequency).
scipy.signal.find_peaks_cwt now accepts a window_size parameter for the
size of the window used to calculate the noise floor.
scipy.sparse improvements
Outer indexing is now faster when using a 2d column vector to select column indices.
scipy.sparse.lil.tocsr is faster
Fixed/improved comparisons between pydata sparse arrays and sparse matrices
BSR format sparse multiplication performance has been improved.
scipy.sparse.linalg.LinearOperator has gained the new ndim class
attribute
scipy.spatial improvements
scipy.spatial.geometric_slerp has been added to enable geometric
spherical linear interpolation on an n-sphere
scipy.spatial.SphericalVoronoi now supports calculation of region areas in 2D
and 3D cases
The tree building algorithm used by cKDTree has improved from quadratic
worst case time complexity to loglinear. Benchmarks are also now available for
building and querying of balanced/unbalanced kd-trees.
scipy.special improvements
The following functions now have Cython interfaces in cython_special:
-
scipy.special.erfinv -
scipy.special.erfcinv -
scipy.special.spherical_jn -
scipy.special.spherical_yn -
scipy.special.spherical_in -
scipy.special.spherical_kn
scipy.special.log_softmax has been added to calculate the logarithm of softmax
function. It provides better accuracy than log(scipy.special.softmax(x)) for
inputs that make softmax saturate.
scipy.stats improvements
The function for generating random samples in scipy.stats.dlaplace has been
improved. The new function is approximately twice as fast with a memory
footprint reduction between 25 % and 60 % (see gh-11069).
scipy.stats functions that accept a seed for reproducible calculations using
random number generation (e.g. random variates from distributions) can now use
the modern np.random.Generator as well as the legacy
np.random.RandomState as a seed.
The axis parameter was added to scipy.stats.rankdata. This allows slices
of an array along the given axis to be ranked independently.
The axis parameter was added to scipy.stats.f_oneway, allowing it to
compute multiple one-way ANOVA tests for data stored in n-dimensional
arrays. The performance of f_oneway was also improved for some cases.
The PDF and CDF methods for stats.geninvgauss are now significantly faster
as the numerical integration to calculate the CDF uses a Cython based
LowLevelCallable.
Moments of the normal distribution (scipy.stats.norm) are now calculated using
analytical formulas instead of numerical integration for greater speed and
accuracy
Moments and entropy trapezoidal distribution (scipy.stats.trapz) are now
calculated using analytical formulas instead of numerical integration for
greater speed and accuracy
Methods of the truncated normal distribution (scipy.stats.truncnorm),
especially _rvs, are significantly faster after a complete rewrite.
The fit method of the Laplace distribution, scipy.stats.laplace, now uses
the analytical formulas for the maximum likelihood estimates of the parameters.
Generation of random variates is now thread safe for all SciPy distributions.
3rd-party distributions may need to modify the signature of the _rvs()
method to conform to _rvs(self, ..., size=None, random_state=None). (A
one-time VisibleDeprecationWarning is emitted when using non-conformant
distributions.)
The Kolmogorov-Smirnov two-sided test statistic distribution
(scipy.stats.kstwo) was added. Calculates the distribution of the K-S
two-sided statistic D_n for a sample of size n, using a mixture of exact
and asymptotic algorithms.
The new function median_abs_deviation replaces the deprecated
median_absolute_deviation.
The wilcoxon function now computes the p-value for Wilcoxon's signed rank
test using the exact distribution for inputs up to length 25. The function has
a new mode parameter to specify how the p-value is to be computed. The
default is "auto", which uses the exact distribution for inputs up to length
25 and the normal approximation for larger inputs.
Added a new Cython-based implementation to evaluate guassian kernel estimates,
which should improve the performance of gaussian_kde
The winsorize function now has a nan_policy argument for refined
handling of nan input values.
The binned_statistic_dd function with statistic="std" performance was
improved by ~4x.
scipy.stats.kstest(rvs, cdf,...) now handles both one-sample and
two-sample testing. The one-sample variation uses scipy.stats.ksone
(or scipy.stats.kstwo with back off to scipy.stats.kstwobign) to calculate
the p-value. The two-sample variation, invoked if cdf is array_like, uses
an algorithm described by Hodges to compute the probability directly, only
backing off to scipy.stats.kstwo in case of overflow. The result in both
cases is more accurate p-values, especially for two-sample testing with
smaller (or quite different) sizes.
scipy.stats.maxwell performance improvements include a 20 % speed up for
fit()and 5 % forpdf()`
scipy.stats.shapiro and scipy.stats.jarque_bera now return a named tuple
for greater consistency with other stats functions
Deprecated features
scipy deprecations
scipy.special changes
The bdtr, bdtrc, and bdtri functions are deprecating non-negative
non-integral n arguments.
scipy.stats changes
The function median_absolute_deviation is deprecated. Use
median_abs_deviation instead.
The use of the string "raw" with the scale parameter of iqr is
deprecated. Use scale=1 instead.
Backwards incompatible changes
scipy.interpolate changes
scipy.linalg changes
The output signatures of ?syevr, ?heevr have been changed from
w, v, info to w, v, m, isuppz, info
The order of output arguments w, v of <sy/he>{gv, gvd, gvx} is
swapped.
scipy.signal changes
The output length of scipy.signal.upfirdn has been corrected, resulting
outputs may now be shorter for some combinations of up/down ratios and input
signal and filter lengths.
scipy.signal.resample now supports a domain keyword argument for
specification of time or frequency domain input.
scipy.stats changes
Other changes
Improved support for leveraging 64-bit integer size from linear algebra backends in several parts of the SciPy codebase.
Shims designed to ensure the compatibility of SciPy with Python 2.7 have now been removed.
Many warnings due to unused imports and unused assignments have been addressed.
Many usage examples were added to function docstrings, and many input validations and intuitive exception messages have been added throughout the codebase.
Early stage adoption of type annotations in a few parts of the codebase
Authors
- @endolith
- Hameer Abbasi
- ADmitri +
- Wesley Alves +
- Berkay Antmen +
- Sylwester Arabas +
- Arne Küderle +
- Christoph Baumgarten
- Peter Bell
- Felix Berkenkamp
- Jordão Bragantini +
- Clemens Brunner +
- Evgeni Burovski
- Matthias Bussonnier +
- CJ Carey
- Derrick Chambers +
- Leander Claes +
- Christian Clauss
- Luigi F. Cruz +
- dankleeman
- Andras Deak
- Milad Sadeghi DM +
- jeremie du boisberranger +
- Stefan Endres
- Malte Esders +
- Leo Fang +
- felixhekhorn +
- Isuru Fernando
- Andrew Fowlie
- Lakshay Garg +
- Gaurav Gijare +
- Ralf Gommers
- Emmanuelle Gouillart +
- Kevin Green +
- Martin Grignard +
- Maja Gwozdz
- gyu-don +
- Matt Haberland
- hakeemo +
- Charles Harris
- Alex Henrie
- Santi Hernandez +
- William Hickman +
- Till Hoffmann +
- Joseph T. Iosue +
- Anany Shrey Jain
- Jakob Jakobson
- Charles Jekel +
- Julien Jerphanion +
- Jiacheng-Liu +
- Christoph Kecht +
- Paul Kienzle +
- Reidar Kind +
- Dmitry E. Kislov +
- Konrad +
- Konrad0
- Takuya KOUMURA +
- Krzysztof Pióro
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory Lee +
- Gregory R. Lee
- Chelsea Liu
- Cong Ma +
- Kevin Mader +
- Maja Gwóźdź +
- Alex Marvin +
- Matthias Kümmerer
- Nikolay Mayorov
- Mazay0 +
- G. D. McBain
- Nicholas McKibben +
- Sabrina J. Mielke +
- Sebastian J. Mielke +
- MiloÅ¡ KomarÄević +
- Shubham Mishra +
- Santiago M. Mola +
- Grzegorz Mrukwa +
- Peyton Murray
- Andrew Nelson
- Nico Schlömer
- nwjenkins +
- odidev +
- Sambit Panda
- Vikas Pandey +
- Rick Paris +
- Harshal Prakash Patankar +
- Balint Pato +
- Matti Picus
- Ilhan Polat
- poom +
- Siddhesh Poyarekar
- Vladyslav Rachek +
- Bharat Raghunathan
- Manu Rajput +
- Tyler Reddy
- Andrew Reed +
- Lucas Roberts
- Ariel Rokem
- Heshy Roskes
- Matt Ruffalo
- Atsushi Sakai +
- Benjamin Santos +
- Christoph Schock +
- Lisa Schwetlick +
- Chris Simpson +
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- Kale-ab Tessera +
- Seth Troisi +
- Robert Uhl +
- Paul van Mulbregt
- Vasiliy +
- Isaac Virshup +
- Pauli Virtanen
- Shakthi Visagan +
- Jan Vleeshouwers +
- Sam Wallan +
- Lijun Wang +
- Warren Weckesser
- Richard Weiss +
- wenhui-prudencemed +
- Eric Wieser
- Josh Wilson
- James Wright +
- Ruslan Yevdokymov +
- Ziyao Zhang +
A total of 129 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.
- Python
Published by tylerjereddy almost 6 years ago
scipy - SciPy 1.2.3
SciPy 1.2.3 Release Notes
SciPy 1.2.3 is a bug-fix release with no new features compared to 1.2.2. It is
part of the long-term support (LTS) release series for Python 2.7.
Authors
- Geordie McBain
- Matt Haberland
- David Hagen
- Tyler Reddy
- Pauli Virtanen
- Eric Larson
- Yu Feng
- ananyashreyjain
- Nikolay Mayorov
- Evgeni Burovski
- Warren Weckesser
- Python
Published by tylerjereddy over 6 years ago
scipy - SciPy 1.4.1
SciPy 1.4.1 Release Notes
SciPy 1.4.1 is a bug-fix release with no new features
compared to 1.4.0. Importantly, it aims to fix a problem
where an older version of pybind11 may cause a segmentation
fault when imported alongside incompatible libraries.
Authors
- Ralf Gommers
- Tyler Reddy
- Python
Published by tylerjereddy over 6 years ago
scipy - SciPy 1.4.0
SciPy 1.4.0 Release Notes
SciPy 1.4.0 is the culmination of 6 months of hard work. It contains
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.4.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy >=1.13.3 (for Python 3.5, 3.6),
>=1.14.5 (for Python 3.7), >= 1.17.3 (for Python 3.8)
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- a new submodule,
scipy.fft, now supersedesscipy.fftpack; this means support forlong doubletransforms, faster multi-dimensional transforms, improved algorithm time complexity, release of the global intepreter lock, and control over threading behavior - support for
pydata/sparsearrays inscipy.sparse.linalg - substantial improvement to the documentation and functionality of
several
scipy.specialfunctions, and some new additions - the generalized inverse Gaussian distribution has been added to
scipy.stats - an implementation of the Edmonds-Karp algorithm in
scipy.sparse.csgraph.maximum_flow scipy.spatial.SphericalVoronoinow supports n-dimensional input, has linear memory complexity, improved performance, and supports single-hemisphere generators
New features
Infrastructure
Documentation can now be built with runtests.py --doc
A Dockerfile is now available in the scipy/scipy-dev repository to
facilitate getting started with SciPy development.
scipy.constants improvements
scipy.constants has been updated with the CODATA 2018 constants.
scipy.fft added
scipy.fft is a new submodule that supersedes the scipy.fftpack submodule.
For the most part, this is a drop-in replacement for numpy.fft and
scipy.fftpack alike. With some important differences, scipy.fft:
- uses NumPy's conventions for real transforms (rfft). This means the
return value is a complex array, half the size of the full fft output.
This is different from the output of fftpack which returned a real array
representing complex components packed together.
- the inverse real to real transforms (idct and idst) are normalized
for norm=None in thesame way as ifft. This means the identity
idct(dct(x)) == x is now True for all norm modes.
- does not include the convolutions or pseudo-differential operators
from fftpack.
This submodule is based on the pypocketfft library, developed by the
author of pocketfft which was recently adopted by NumPy as well.
pypocketfft offers a number of advantages over fortran FFTPACK:
- support for long double (np.longfloat) precision transforms.
- faster multi-dimensional transforms using vectorisation
- Bluestein’s algorithm removes the worst-case O(n^2) complexity of
FFTPACK
- the global interpreter lock (GIL) is released during transforms
- optional multithreading of multi-dimensional transforms via the workers
argument
Note that scipy.fftpack has not been deprecated and will continue to be
maintained but is now considered legacy. New code is recommended to use
scipy.fft instead, where possible.
scipy.fftpack improvements
scipy.fftpack now uses pypocketfft to perform its FFTs, offering the same
speed and accuracy benefits listed for scipy.fft above but without the
improved API.
scipy.integrate improvements
The function scipy.integrate.solve_ivp now has an args argument.
This allows the user-defined functions passed to the function to have
additional parameters without having to create wrapper functions or
lambda expressions for them.
scipy.integrate.solve_ivp can now return a y_events attribute
representing the solution of the ODE at event times
New OdeSolver is implemented --- DOP853. This is a high-order explicit
Runge-Kutta method originally implemented in Fortran. Now we provide a pure
Python implementation usable through solve_ivp with all its features.
scipy.integrate.quad provides better user feedback when break points are
specified with a weighted integrand.
scipy.integrate.quad_vec is now available for general purpose integration
of vector-valued functions
scipy.interpolate improvements
scipy.interpolate.pade now handles complex input data gracefully
scipy.interpolate.Rbf can now interpolate multi-dimensional functions
scipy.io improvements
scipy.io.wavfile.read can now read data from a WAV file that has a
malformed header, similar to other modern WAV file parsers
scipy.io.FortranFile now has an expanded set of available Exception
classes for handling poorly-formatted files
scipy.linalg improvements
The function scipy.linalg.subspace_angles(A, B) now gives correct
results for complex-valued matrices. Before this, the function only returned
correct values for real-valued matrices.
New boolean keyword argument check_finite for scipy.linalg.norm; whether
to check that the input matrix contains only finite numbers. Disabling may
give a performance gain, but may result in problems (crashes, non-termination)
if the inputs do contain infinities or NaNs.
scipy.linalg.solve_triangular has improved performance for a C-ordered
triangular matrix
LAPACK wrappers have been added for ?geequ, ?geequb, ?syequb,
and ?heequb
Some performance improvements may be observed due to an internal optimization
in operations involving LAPACK routines via _compute_lwork. This is
particularly true for operations on small arrays.
Block QR wrappers are now available in scipy.linalg.lapack
scipy.ndimage improvements
scipy.optimize improvements
It is now possible to use linear and non-linear constraints with
scipy.optimize.differential_evolution.
scipy.optimize.linear_sum_assignment has been re-written in C++ to improve
performance, and now allows input costs to be infinite.
A ScalarFunction.fun_and_grad method was added for convenient simultaneous
retrieval of a function and gradient evaluation
scipy.optimize.minimize BFGS method has improved performance by avoiding
duplicate evaluations in some cases
Better user feedback is provided when an objective function returns an array instead of a scalar.
scipy.signal improvements
Added a new function to calculate convolution using the overlap-add method,
named scipy.signal.oaconvolve. Like scipy.signal.fftconvolve, this
function supports specifying dimensions along which to do the convolution.
scipy.signal.cwt now supports complex wavelets.
The implementation of choose_conv_method has been updated to reflect the
new FFT implementation. In addition, the performance has been significantly
improved (with rather drastic improvements in edge cases).
The function upfirdn now has a mode keyword argument that can be used
to select the signal extension mode used at the signal boundaries. These modes
are also available for use in resample_poly via a newly added padtype
argument.
scipy.signal.sosfilt now benefits from Cython code for improved performance
scipy.signal.resample should be more efficient by leveraging rfft when
possible
scipy.sparse improvements
It is now possible to use the LOBPCG method in scipy.sparse.linalg.svds.
scipy.sparse.linalg.LinearOperator now supports the operation rmatmat
for adjoint matrix-matrix multiplication, in addition to rmatvec.
Multiple stability updates enable float32 support in the LOBPCG eigenvalue
solver for symmetric and Hermitian eigenvalues problems in
scipy.sparse.linalg.lobpcg.
A solver for the maximum flow problem has been added as
scipy.sparse.csgraph.maximum_flow.
scipy.sparse.csgraph.maximum_bipartite_matching now allows non-square inputs,
no longer requires a perfect matching to exist, and has improved performance.
scipy.sparse.lil_matrix conversions now perform better in some scenarios
Basic support is available for pydata/sparse arrays in
scipy.sparse.linalg
scipy.sparse.linalg.spsolve_triangular now supports the unit_diagonal
argument to improve call signature similarity with its dense counterpart,
scipy.linalg.solve_triangular
assertAlmostEqual may now be used with sparse matrices, which have added
support for __round__
scipy.spatial improvements
The bundled Qhull library was upgraded to version 2019.1, fixing several issues. Scipy-specific patches are no longer applied to it.
scipy.spatial.SphericalVoronoi now has linear memory complexity, improved
performance, and supports single-hemisphere generators. Support has also been
added for handling generators that lie on a great circle arc (geodesic input)
and for generators in n-dimensions.
scipy.spatial.transform.Rotation now includes functions for calculation of a
mean rotation, generation of the 3D rotation groups, and reduction of rotations
with rotational symmetries.
scipy.spatial.transform.Slerp is now callable with a scalar argument
scipy.spatial.voronoi_plot_2d now supports furthest site Voronoi diagrams
scipy.spatial.Delaunay and scipy.spatial.Voronoi now have attributes
for tracking whether they are furthest site diagrams
scipy.special improvements
The Voigt profile has been added as scipy.special.voigt_profile.
A real dispatch has been added for the Wright Omega function
(scipy.special.wrightomega).
The analytic continuation of the Riemann zeta function has been added. (The
Riemann zeta function is the one-argument variant of scipy.special.zeta.)
The complete elliptic integral of the first kind (scipy.special.ellipk) is
now available in scipy.special.cython_special.
The accuracy of scipy.special.hyp1f1 for real arguments has been improved.
The documentation of many functions has been improved.
scipy.stats improvements
scipy.stats.multiscale_graphcorr added as an independence test that
operates on high dimensional and nonlinear data sets. It has higher statistical
power than other scipy.stats tests while being the only one that operates on
multivariate data.
The generalized inverse Gaussian distribution (scipy.stats.geninvgauss) has
been added.
It is now possible to efficiently reuse scipy.stats.binned_statistic_dd
with new values by providing the result of a previous call to the function.
scipy.stats.hmean now handles input with zeros more gracefully.
The beta-binomial distribution is now available in scipy.stats.betabinom.
scipy.stats.zscore, scipy.stats.circmean, scipy.stats.circstd, and
scipy.stats.circvar now support the nan_policy argument for enhanced
handling of NaN values
scipy.stats.entropy now accepts an axis argument
scipy.stats.gaussian_kde.resample now accepts a seed argument to empower
reproducibility
scipy.stats.kendalltau performance has improved, especially for large inputs,
due to improved cache usage
scipy.stats.truncnorm distribution has been rewritten to support much wider
tails
Deprecated features
scipy deprecations
Support for NumPy functions exposed via the root SciPy namespace is deprecated
and will be removed in 2.0.0. For example, if you use scipy.rand or
scipy.diag, you should change your code to directly use
numpy.random.default_rng or numpy.diag, respectively.
They remain available in the currently continuing Scipy 1.x release series.
The exception to this rule is using scipy.fft as a function --
:mod:scipy.fft is now meant to be used only as a module, so the ability to
call scipy.fft(...) will be removed in SciPy 1.5.0.
In scipy.spatial.Rotation methods from_dcm, as_dcm were renamed to
from_matrix, as_matrix respectively. The old names will be removed in
SciPy 1.6.0.
Method Rotation.match_vectors was deprecated in favor of
Rotation.align_vectors, which provides a more logical and
general API to the same functionality. The old method
will be removed in SciPy 1.6.0.
Backwards incompatible changes
scipy.special changes
The deprecated functions hyp2f0, hyp1f2, and hyp3f0 have been
removed.
The deprecated function bessel_diff_formula has been removed.
The function i0 is no longer registered with numpy.dual, so that
numpy.dual.i0 will unconditionally refer to the NumPy version regardless
of whether scipy.special is imported.
The function expn has been changed to return nan outside of its
domain of definition (x, n < 0) instead of inf.
scipy.sparse changes
Sparse matrix reshape now raises an error if shape is not two-dimensional, rather than guessing what was meant. The behavior is now the same as before SciPy 1.1.0.
CSR and CSC sparse matrix classes should now return empty matrices
of the same type when indexed out of bounds. Previously, for some versions
of SciPy, this would raise an IndexError. The change is largely motivated
by greater consistency with ndarray and numpy.matrix semantics.
scipy.signal changes
scipy.signal.resample behavior for length-1 signal inputs has been
fixed to output a constant (DC) value rather than an impulse, consistent with
the assumption of signal periodicity in the FFT method.
scipy.signal.cwt now performs complex conjugation and time-reversal of
wavelet data, which is a backwards-incompatible bugfix for
time-asymmetric wavelets.
scipy.stats changes
scipy.stats.loguniform added with better documentation as (an alias for
scipy.stats.reciprocal). loguniform generates random variables
that are equally likely in the log space; e.g., 1, 10 and 100
are all equally likely if loguniform(10 ** 0, 10 ** 2).rvs() is used.
Other changes
The LSODA method of scipy.integrate.solve_ivp now correctly detects stiff
problems.
scipy.spatial.cKDTree now accepts and correctly handles empty input data
scipy.stats.binned_statistic_dd now calculates the standard deviation
statistic in a numerically stable way.
scipy.stats.binned_statistic_dd now throws an error if the input data
contains either np.nan or np.inf. Similarly, in scipy.stats now all
continuous distributions' .fit() methods throw an error if the input data
contain any instance of either np.nan or np.inf.
Authors
- @endolith
- @wenhui-prudencemed +
- Abhinav +
- Anne Archibald
- ashwinpathak20nov1996 +
- Danilo Augusto +
- Nelson Auner +
- aypiggott +
- Christoph Baumgarten
- Peter Bell
- Sebastian Berg
- Arman Bilge +
- Benedikt Boecking +
- Christoph Boeddeker +
- Daniel Bunting
- Evgeni Burovski
- Angeline Burrell +
- Angeline G. Burrell +
- CJ Carey
- Carlos Ramos Carreño +
- Mak Sze Chun +
- Malayaja Chutani +
- Christian Clauss +
- Jonathan Conroy +
- Stephen P Cook +
- Dylan Cutler +
- Anirudh Dagar +
- Aidan Dang +
- dankleeman +
- Brandon David +
- Tyler Dawson +
- Dieter Werthmüller
- Joe Driscoll +
- Jakub Dyczek +
- Dávid Bodnár
- Fletcher Easton +
- Stefan Endres
- etienne +
- Johann Faouzi
- Yu Feng
- Isuru Fernando +
- Matthew H Flamm
- Martin Gauch +
- Gabriel Gerlero +
- Ralf Gommers
- Chris Gorgolewski +
- Domen Gorjup +
- Edouard Goudenhoofdt +
- Jan Gwinner +
- Maja Gwozdz +
- Matt Haberland
- hadshirt +
- Pierre Haessig +
- David Hagen
- Charles Harris
- Gina Helfrich +
- Alex Henrie +
- Francisco J. Hernandez Heras +
- Andreas Hilboll
- Lindsey Hiltner
- Thomas Hisch
- Min ho Kim +
- Gert-Ludwig Ingold
- jakobjakobson13 +
- Todd Jennings
- He Jia
- Muhammad Firmansyah Kasim +
- Andrew Knyazev +
- Holger Kohr +
- Mateusz Konieczny +
- Krzysztof Pióro +
- Philipp Lang +
- Peter Mahler Larsen +
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Chelsea Liu +
- Jesse Livezey
- Peter Lysakovski +
- Jason Manley +
- Michael Marien +
- Nikolay Mayorov
- G. D. McBain +
- Sam McCormack +
- Melissa Weber Mendonça +
- Kevin Michel +
- mikeWShef +
- Sturla Molden
- Eric Moore
- Peyton Murray +
- Andrew Nelson
- Clement Ng +
- Juan Nunez-Iglesias
- Renee Otten +
- Kellie Ottoboni +
- Ayappan P
- Sambit Panda +
- Tapasweni Pathak +
- Oleksandr Pavlyk
- Fabian Pedregosa
- Petar Mlinarić
- Matti Picus
- Marcel Plch +
- Christoph Pohl +
- Ilhan Polat
- Siddhesh Poyarekar +
- Ioannis Prapas +
- James Alan Preiss +
- Yisheng Qiu +
- Eric Quintero
- Bharat Raghunathan +
- Tyler Reddy
- Joscha Reimer
- Antonio Horta Ribeiro
- Lucas Roberts
- rtshort +
- Josua Sassen
- Kevin Sheppard
- Scott Sievert
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- tborisow +
- Étienne Tremblay +
- tuxcell +
- Miguel de Val-Borro
- Andrew Valentine +
- Hugo van Kemenade
- Paul van Mulbregt
- Sebastiano Vigna
- Pauli Virtanen
- Dany Vohl +
- Ben Walsh +
- Huize Wang +
- Warren Weckesser
- Anreas Weh +
- Joseph Weston +
- Adrian Wijaya +
- Timothy Willard +
- Josh Wilson
- Kentaro Yamamoto +
- Dave Zbarsky +
A total of 142 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.
- Python
Published by tylerjereddy over 6 years ago
scipy - SciPy 1.4.0rc2
SciPy 1.4.0 Release Notes
Note: Scipy 1.4.0 is not released yet!
SciPy 1.4.0 is the culmination of 6 months of hard work. It contains
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.4.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy >=1.13.3 (for Python 3.5, 3.6),
>=1.14.5 (for Python 3.7), >= 1.17.3 (for Python 3.8)
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- a new submodule,
scipy.fft, now supersedesscipy.fftpack; this means support forlong doubletransforms, faster multi-dimensional transforms, improved algorithm time complexity, release of the global intepreter lock, and control over threading behavior - support for
pydata/sparsearrays inscipy.sparse.linalg - substantial improvement to the documentation and functionality of
several
scipy.specialfunctions, and some new additions - the generalized inverse Gaussian distribution has been added to
scipy.stats - an implementation of the Edmonds-Karp algorithm in
scipy.sparse.csgraph.maximum_flow scipy.spatial.SphericalVoronoinow supports n-dimensional input, has linear memory complexity, improved performance, and supports single-hemisphere generators
New features
Infrastructure
Documentation can now be built with runtests.py --doc
A Dockerfile is now available in the scipy/scipy-dev repository to
facilitate getting started with SciPy development.
scipy.constants improvements
scipy.constants has been updated with the CODATA 2018 constants.
scipy.fft added
scipy.fft is a new submodule that supersedes the scipy.fftpack submodule.
For the most part, this is a drop-in replacement for numpy.fft and
scipy.fftpack alike. With some important differences, scipy.fft:
- uses NumPy's conventions for real transforms (rfft). This means the
return value is a complex array, half the size of the full fft output.
This is different from the output of fftpack which returned a real array
representing complex components packed together.
- the inverse real to real transforms (idct and idst) are normalized
for norm=None in thesame way as ifft. This means the identity
idct(dct(x)) == x is now True for all norm modes.
- does not include the convolutions or pseudo-differential operators
from fftpack.
This submodule is based on the pypocketfft library, developed by the
author of pocketfft which was recently adopted by NumPy as well.
pypocketfft offers a number of advantages over fortran FFTPACK:
- support for long double (np.longfloat) precision transforms.
- faster multi-dimensional transforms using vectorisation
- Bluestein’s algorithm removes the worst-case O(n^2) complexity of
FFTPACK
- the global interpreter lock (GIL) is released during transforms
- optional multithreading of multi-dimensional transforms via the workers
argument
Note that scipy.fftpack has not been deprecated and will continue to be
maintained but is now considered legacy. New code is recommended to use
scipy.fft instead, where possible.
scipy.fftpack improvements
scipy.fftpack now uses pypocketfft to perform its FFTs, offering the same
speed and accuracy benefits listed for scipy.fft above but without the
improved API.
scipy.integrate improvements
The function scipy.integrate.solve_ivp now has an args argument.
This allows the user-defined functions passed to the function to have
additional parameters without having to create wrapper functions or
lambda expressions for them.
scipy.integrate.solve_ivp can now return a y_events attribute
representing the solution of the ODE at event times
New OdeSolver is implemented --- DOP853. This is a high-order explicit
Runge-Kutta method originally implemented in Fortran. Now we provide a pure
Python implementation usable through solve_ivp with all its features.
scipy.integrate.quad provides better user feedback when break points are
specified with a weighted integrand.
scipy.integrate.quad_vec is now available for general purpose integration
of vector-valued functions
scipy.interpolate improvements
scipy.interpolate.pade now handles complex input data gracefully
scipy.interpolate.Rbf can now interpolate multi-dimensional functions
scipy.io improvements
scipy.io.wavfile.read can now read data from a WAV file that has a
malformed header, similar to other modern WAV file parsers
scipy.io.FortranFile now has an expanded set of available Exception
classes for handling poorly-formatted files
scipy.linalg improvements
The function scipy.linalg.subspace_angles(A, B) now gives correct
results for complex-valued matrices. Before this, the function only returned
correct values for real-valued matrices.
New boolean keyword argument check_finite for scipy.linalg.norm; whether
to check that the input matrix contains only finite numbers. Disabling may
give a performance gain, but may result in problems (crashes, non-termination)
if the inputs do contain infinities or NaNs.
scipy.linalg.solve_triangular has improved performance for a C-ordered
triangular matrix
LAPACK wrappers have been added for ?geequ, ?geequb, ?syequb,
and ?heequb
Some performance improvements may be observed due to an internal optimization
in operations involving LAPACK routines via _compute_lwork. This is
particularly true for operations on small arrays.
Block QR wrappers are now available in scipy.linalg.lapack
scipy.ndimage improvements
scipy.optimize improvements
It is now possible to use linear and non-linear constraints with
scipy.optimize.differential_evolution.
scipy.optimize.linear_sum_assignment has been re-written in C++ to improve
performance, and now allows input costs to be infinite.
A ScalarFunction.fun_and_grad method was added for convenient simultaneous
retrieval of a function and gradient evaluation
scipy.optimize.minimize BFGS method has improved performance by avoiding
duplicate evaluations in some cases
Better user feedback is provided when an objective function returns an array instead of a scalar.
scipy.signal improvements
Added a new function to calculate convolution using the overlap-add method,
named scipy.signal.oaconvolve. Like scipy.signal.fftconvolve, this
function supports specifying dimensions along which to do the convolution.
scipy.signal.cwt now supports complex wavelets.
The implementation of choose_conv_method has been updated to reflect the
new FFT implementation. In addition, the performance has been significantly
improved (with rather drastic improvements in edge cases).
The function upfirdn now has a mode keyword argument that can be used
to select the signal extension mode used at the signal boundaries. These modes
are also available for use in resample_poly via a newly added padtype
argument.
scipy.signal.sosfilt now benefits from Cython code for improved performance
scipy.signal.resample should be more efficient by leveraging rfft when
possible
scipy.sparse improvements
It is now possible to use the LOBPCG method in scipy.sparse.linalg.svds.
scipy.sparse.linalg.LinearOperator now supports the operation rmatmat
for adjoint matrix-matrix multiplication, in addition to rmatvec.
Multiple stability updates enable float32 support in the LOBPCG eigenvalue
solver for symmetric and Hermitian eigenvalues problems in
scipy.sparse.linalg.lobpcg.
A solver for the maximum flow problem has been added as
scipy.sparse.csgraph.maximum_flow.
scipy.sparse.csgraph.maximum_bipartite_matching now allows non-square inputs,
no longer requires a perfect matching to exist, and has improved performance.
scipy.sparse.lil_matrix conversions now perform better in some scenarios
Basic support is available for pydata/sparse arrays in
scipy.sparse.linalg
scipy.sparse.linalg.spsolve_triangular now supports the unit_diagonal
argument to improve call signature similarity with its dense counterpart,
scipy.linalg.solve_triangular
assertAlmostEqual may now be used with sparse matrices, which have added
support for __round__
scipy.spatial improvements
The bundled Qhull library was upgraded to version 2019.1, fixing several issues. Scipy-specific patches are no longer applied to it.
scipy.spatial.SphericalVoronoi now has linear memory complexity, improved
performance, and supports single-hemisphere generators. Support has also been
added for handling generators that lie on a great circle arc (geodesic input)
and for generators in n-dimensions.
scipy.spatial.transform.Rotation now includes functions for calculation of a
mean rotation, generation of the 3D rotation groups, and reduction of rotations
with rotational symmetries.
scipy.spatial.transform.Slerp is now callable with a scalar argument
scipy.spatial.voronoi_plot_2d now supports furthest site Voronoi diagrams
scipy.spatial.Delaunay and scipy.spatial.Voronoi now have attributes
for tracking whether they are furthest site diagrams
scipy.special improvements
The Voigt profile has been added as scipy.special.voigt_profile.
A real dispatch has been added for the Wright Omega function
(scipy.special.wrightomega).
The analytic continuation of the Riemann zeta function has been added. (The
Riemann zeta function is the one-argument variant of scipy.special.zeta.)
The complete elliptic integral of the first kind (scipy.special.ellipk) is
now available in scipy.special.cython_special.
The accuracy of scipy.special.hyp1f1 for real arguments has been improved.
The documentation of many functions has been improved.
scipy.stats improvements
scipy.stats.multiscale_graphcorr added as an independence test that
operates on high dimensional and nonlinear data sets. It has higher statistical
power than other scipy.stats tests while being the only one that operates on
multivariate data.
The generalized inverse Gaussian distribution (scipy.stats.geninvgauss) has
been added.
It is now possible to efficiently reuse scipy.stats.binned_statistic_dd
with new values by providing the result of a previous call to the function.
scipy.stats.hmean now handles input with zeros more gracefully.
The beta-binomial distribution is now available in scipy.stats.betabinom.
scipy.stats.zscore, scipy.stats.circmean, scipy.stats.circstd, and
scipy.stats.circvar now support the nan_policy argument for enhanced
handling of NaN values
scipy.stats.entropy now accepts an axis argument
scipy.stats.gaussian_kde.resample now accepts a seed argument to empower
reproducibility
scipy.stats.kendalltau performance has improved, especially for large inputs,
due to improved cache usage
scipy.stats.truncnorm distribution has been rewritten to support much wider
tails
Deprecated features
scipy deprecations
Support for NumPy functions exposed via the root SciPy namespace is deprecated
and will be removed in 2.0.0. For example, if you use scipy.rand or
scipy.diag, you should change your code to directly use
numpy.random.default_rng or numpy.diag, respectively.
They remain available in the currently continuing Scipy 1.x release series.
The exception to this rule is using scipy.fft as a function --
:mod:scipy.fft is now meant to be used only as a module, so the ability to
call scipy.fft(...) will be removed in SciPy 1.5.0.
In scipy.spatial.Rotation methods from_dcm, as_dcm were renamed to
from_matrix, as_matrix respectively. The old names will be removed in
SciPy 1.6.0.
Method Rotation.match_vectors was deprecated in favor of
Rotation.align_vectors, which provides a more logical and
general API to the same functionality. The old method
will be removed in SciPy 1.6.0.
Backwards incompatible changes
scipy.special changes
The deprecated functions hyp2f0, hyp1f2, and hyp3f0 have been
removed.
The deprecated function bessel_diff_formula has been removed.
The function i0 is no longer registered with numpy.dual, so that
numpy.dual.i0 will unconditionally refer to the NumPy version regardless
of whether scipy.special is imported.
The function expn has been changed to return nan outside of its
domain of definition (x, n < 0) instead of inf.
scipy.sparse changes
Sparse matrix reshape now raises an error if shape is not two-dimensional, rather than guessing what was meant. The behavior is now the same as before SciPy 1.1.0.
CSR and CSC sparse matrix classes should now return empty matrices
of the same type when indexed out of bounds. Previously, for some versions
of SciPy, this would raise an IndexError. The change is largely motivated
by greater consistency with ndarray and numpy.matrix semantics.
scipy.signal changes
scipy.signal.resample behavior for length-1 signal inputs has been
fixed to output a constant (DC) value rather than an impulse, consistent with
the assumption of signal periodicity in the FFT method.
scipy.signal.cwt now performs complex conjugation and time-reversal of
wavelet data, which is a backwards-incompatible bugfix for
time-asymmetric wavelets.
scipy.stats changes
scipy.stats.loguniform added with better documentation as (an alias for
scipy.stats.reciprocal). loguniform generates random variables
that are equally likely in the log space; e.g., 1, 10 and 100
are all equally likely if loguniform(10 ** 0, 10 ** 2).rvs() is used.
Other changes
The LSODA method of scipy.integrate.solve_ivp now correctly detects stiff
problems.
scipy.spatial.cKDTree now accepts and correctly handles empty input data
scipy.stats.binned_statistic_dd now calculates the standard deviation
statistic in a numerically stable way.
scipy.stats.binned_statistic_dd now throws an error if the input data
contains either np.nan or np.inf. Similarly, in scipy.stats now all
continuous distributions' .fit() methods throw an error if the input data
contain any instance of either np.nan or np.inf.
Authors
- @endolith
- @wenhui-prudencemed +
- Abhinav +
- Anne Archibald
- ashwinpathak20nov1996 +
- Danilo Augusto +
- Nelson Auner +
- aypiggott +
- Christoph Baumgarten
- Peter Bell
- Sebastian Berg
- Arman Bilge +
- Benedikt Boecking +
- Christoph Boeddeker +
- Daniel Bunting
- Evgeni Burovski
- Angeline Burrell +
- Angeline G. Burrell +
- CJ Carey
- Carlos Ramos Carreño +
- Mak Sze Chun +
- Malayaja Chutani +
- Christian Clauss +
- Jonathan Conroy +
- Stephen P Cook +
- Dylan Cutler +
- Anirudh Dagar +
- Aidan Dang +
- dankleeman +
- Brandon David +
- Tyler Dawson +
- Dieter Werthmüller
- Joe Driscoll +
- Jakub Dyczek +
- Dávid Bodnár
- Fletcher Easton +
- Stefan Endres
- etienne +
- Johann Faouzi
- Yu Feng
- Isuru Fernando +
- Matthew H Flamm
- Martin Gauch +
- Gabriel Gerlero +
- Ralf Gommers
- Chris Gorgolewski +
- Domen Gorjup +
- Edouard Goudenhoofdt +
- Jan Gwinner +
- Maja Gwozdz +
- Matt Haberland
- hadshirt +
- Pierre Haessig +
- David Hagen
- Charles Harris
- Gina Helfrich +
- Alex Henrie +
- Francisco J. Hernandez Heras +
- Andreas Hilboll
- Lindsey Hiltner
- Thomas Hisch
- Min ho Kim +
- Gert-Ludwig Ingold
- jakobjakobson13 +
- Todd Jennings
- He Jia
- Muhammad Firmansyah Kasim +
- Andrew Knyazev +
- Holger Kohr +
- Mateusz Konieczny +
- Krzysztof Pióro +
- Philipp Lang +
- Peter Mahler Larsen +
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Chelsea Liu +
- Jesse Livezey
- Peter Lysakovski +
- Jason Manley +
- Michael Marien +
- Nikolay Mayorov
- G. D. McBain +
- Sam McCormack +
- Melissa Weber Mendonça +
- Kevin Michel +
- mikeWShef +
- Sturla Molden
- Eric Moore
- Peyton Murray +
- Andrew Nelson
- Clement Ng +
- Juan Nunez-Iglesias
- Renee Otten +
- Kellie Ottoboni +
- Ayappan P
- Sambit Panda +
- Tapasweni Pathak +
- Oleksandr Pavlyk
- Fabian Pedregosa
- Petar Mlinarić
- Matti Picus
- Marcel Plch +
- Christoph Pohl +
- Ilhan Polat
- Siddhesh Poyarekar +
- Ioannis Prapas +
- James Alan Preiss +
- Yisheng Qiu +
- Eric Quintero
- Bharat Raghunathan +
- Tyler Reddy
- Joscha Reimer
- Antonio Horta Ribeiro
- Lucas Roberts
- rtshort +
- Josua Sassen
- Kevin Sheppard
- Scott Sievert
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- tborisow +
- Étienne Tremblay +
- tuxcell +
- Miguel de Val-Borro
- Andrew Valentine +
- Hugo van Kemenade
- Paul van Mulbregt
- Sebastiano Vigna
- Pauli Virtanen
- Dany Vohl +
- Ben Walsh +
- Huize Wang +
- Warren Weckesser
- Anreas Weh +
- Joseph Weston +
- Adrian Wijaya +
- Timothy Willard +
- Josh Wilson
- Kentaro Yamamoto +
- Dave Zbarsky +
A total of 142 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.
- Python
Published by tylerjereddy over 6 years ago
scipy - SciPy 1.3.3
SciPy 1.3.3 Release Notes
SciPy 1.3.3 is a bug-fix release with no new features
compared to 1.3.2. In particular, a test suite issue
involving multiprocessing was fixed for Windows and
Python 3.8 on macOS.
Wheels were also updated to place msvcp140.dll at the
appropriate location, which was previously causing issues.
Authors
Ilhan Polat Tyler Reddy Ralf Gommers
- Python
Published by tylerjereddy over 6 years ago
scipy - SciPy 1.4.0rc1
SciPy 1.4.0 Release Notes
Note: SciPy 1.4.0 is not released yet!
SciPy 1.4.0 is the culmination of 6 months of hard work. It contains
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.4.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy >=1.13.3 (for Python 3.5, 3.6),
>=1.14.5 (for Python 3.7), >= 1.17.3 (for Python 3.8)
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- a new submodule,
scipy.fft, now supersedesscipy.fftpack; this means support forlong doubletransforms, faster multi-dimensional transforms, improved algorithm time complexity, release of the global intepreter lock, and control over threading behavior - support for
pydata/sparsearrays inscipy.sparse.linalg - substantial improvement to the documentation and functionality of
several
scipy.specialfunctions, and some new additions - the generalized inverse Gaussian distribution has been added to
scipy.stats - an implementation of the Edmonds-Karp algorithm in
scipy.sparse.csgraph.maximum_flow scipy.spatial.SphericalVoronoinow supports n-dimensional input, has linear memory complexity, improved performance, and supports single-hemisphere generators
New features
Infrastructure
Documentation can now be built with runtests.py --doc
A Dockerfile is now available in the scipy/scipy-dev repository to
facilitate getting started with SciPy development.
scipy.constants improvements
scipy.constants has been updated with the CODATA 2018 constants.
scipy.fft added
scipy.fft is a new submodule that supersedes the scipy.fftpack submodule.
For the most part, this is a drop-in replacement for numpy.fft and
scipy.fftpack alike. With some important differences, scipy.fft:
- uses NumPy's conventions for real transforms (rfft). This means the
return value is a complex array, half the size of the full fft output.
This is different from the output of fftpack which returned a real array
representing complex components packed together.
- the inverse real to real transforms (idct and idst) are normalized
for norm=None in thesame way as ifft. This means the identity
idct(dct(x)) == x is now True for all norm modes.
- does not include the convolutions or pseudo-differential operators
from fftpack.
This submodule is based on the pypocketfft library, developed by the
author of pocketfft which was recently adopted by NumPy as well.
pypocketfft offers a number of advantages over fortran FFTPACK:
- support for long double (np.longfloat) precision transforms.
- faster multi-dimensional transforms using vectorisation
- Bluestein’s algorithm removes the worst-case O(n^2) complexity of
FFTPACK
- the global interpreter lock (GIL) is released during transforms
- optional multithreading of multi-dimensional transforms via the workers
argument
Note that scipy.fftpack has not been deprecated and will continue to be
maintained but is now considered legacy. New code is recommended to use
scipy.fft instead, where possible.
scipy.fftpack improvements
scipy.fftpack now uses pypocketfft to perform its FFTs, offering the same
speed and accuracy benefits listed for scipy.fft above but without the
improved API.
scipy.integrate improvements
The function scipy.integrate.solve_ivp now has an args argument.
This allows the user-defined functions passed to the function to have
additional parameters without having to create wrapper functions or
lambda expressions for them.
scipy.integrate.solve_ivp can now return a y_events attribute
representing the solution of the ODE at event times
New OdeSolver is implemented --- DOP853. This is a high-order explicit
Runge-Kutta method originally implemented in Fortran. Now we provide a pure
Python implementation usable through solve_ivp with all its features.
scipy.integrate.quad provides better user feedback when break points are
specified with a weighted integrand.
scipy.integrate.quad_vec is now available for general purpose integration
of vector-valued functions
scipy.interpolate improvements
scipy.interpolate.pade now handles complex input data gracefully
scipy.interpolate.Rbf can now interpolate multi-dimensional functions
scipy.io improvements
scipy.io.wavfile.read can now read data from a WAV file that has a
malformed header, similar to other modern WAV file parsers
scipy.io.FortranFile now has an expanded set of available Exception
classes for handling poorly-formatted files
scipy.linalg improvements
The function scipy.linalg.subspace_angles(A, B) now gives correct
results for complex-valued matrices. Before this, the function only returned
correct values for real-valued matrices.
New boolean keyword argument check_finite for scipy.linalg.norm; whether
to check that the input matrix contains only finite numbers. Disabling may
give a performance gain, but may result in problems (crashes, non-termination)
if the inputs do contain infinities or NaNs.
scipy.linalg.solve_triangular has improved performance for a C-ordered
triangular matrix
LAPACK wrappers have been added for ?geequ, ?geequb, ?syequb,
and ?heequb
Some performance improvements may be observed due to an internal optimization
in operations involving LAPACK routines via _compute_lwork. This is
particularly true for operations on small arrays.
Block QR wrappers are now available in scipy.linalg.lapack
scipy.ndimage improvements
scipy.optimize improvements
It is now possible to use linear and non-linear constraints with
scipy.optimize.differential_evolution.
scipy.optimize.linear_sum_assignment has been re-written in C++ to improve
performance, and now allows input costs to be infinite.
A ScalarFunction.fun_and_grad method was added for convenient simultaneous
retrieval of a function and gradient evaluation
scipy.optimize.minimize BFGS method has improved performance by avoiding
duplicate evaluations in some cases
Better user feedback is provided when an objective function returns an array instead of a scalar.
scipy.signal improvements
Added a new function to calculate convolution using the overlap-add method,
named scipy.signal.oaconvolve. Like scipy.signal.fftconvolve, this
function supports specifying dimensions along which to do the convolution.
scipy.signal.cwt now supports complex wavelets.
The implementation of choose_conv_method has been updated to reflect the
new FFT implementation. In addition, the performance has been significantly
improved (with rather drastic improvements in edge cases).
The function upfirdn now has a mode keyword argument that can be used
to select the signal extension mode used at the signal boundaries. These modes
are also available for use in resample_poly via a newly added padtype
argument.
scipy.signal.sosfilt now benefits from Cython code for improved performance
scipy.signal.resample should be more efficient by leveraging rfft when
possible
scipy.sparse improvements
It is now possible to use the LOBPCG method in scipy.sparse.linalg.svds.
scipy.sparse.linalg.LinearOperator now supports the operation rmatmat
for adjoint matrix-matrix multiplication, in addition to rmatvec.
Multiple stability updates enable float32 support in the LOBPCG eigenvalue
solver for symmetric and Hermitian eigenvalues problems in
scipy.sparse.linalg.lobpcg.
A solver for the maximum flow problem has been added as
scipy.sparse.csgraph.maximum_flow.
scipy.sparse.csgraph.maximum_bipartite_matching now allows non-square inputs,
no longer requires a perfect matching to exist, and has improved performance.
scipy.sparse.lil_matrix conversions now perform better in some scenarios
Basic support is available for pydata/sparse arrays in
scipy.sparse.linalg
scipy.sparse.linalg.spsolve_triangular now supports the unit_diagonal
argument to improve call signature similarity with its dense counterpart,
scipy.linalg.solve_triangular
assertAlmostEqual may now be used with sparse matrices, which have added
support for __round__
scipy.spatial improvements
The bundled Qhull library was upgraded to version 2019.1, fixing several issues. Scipy-specific patches are no longer applied to it.
scipy.spatial.SphericalVoronoi now has linear memory complexity, improved
performance, and supports single-hemisphere generators. Support has also been
added for handling generators that lie on a great circle arc (geodesic input)
and for generators in n-dimensions.
scipy.spatial.transform.Rotation now includes functions for calculation of a
mean rotation, generation of the 3D rotation groups, and reduction of rotations
with rotational symmetries.
scipy.spatial.transform.Slerp is now callable with a scalar argument
scipy.spatial.voronoi_plot_2d now supports furthest site Voronoi diagrams
scipy.spatial.Delaunay and scipy.spatial.Voronoi now have attributes
for tracking whether they are furthest site diagrams
scipy.special improvements
The Voigt profile has been added as scipy.special.voigt_profile.
A real dispatch has been added for the Wright Omega function
(scipy.special.wrightomega).
The analytic continuation of the Riemann zeta function has been added. (The
Riemann zeta function is the one-argument variant of scipy.special.zeta.)
The complete elliptic integral of the first kind (scipy.special.ellipk) is
now available in scipy.special.cython_special.
The accuracy of scipy.special.hyp1f1 for real arguments has been improved.
The documentation of many functions has been improved.
scipy.stats improvements
scipy.stats.multiscale_graphcorr added as an independence test that
operates on high dimensional and nonlinear data sets. It has higher statistical
power than other scipy.stats tests while being the only one that operates on
multivariate data.
The generalized inverse Gaussian distribution (scipy.stats.geninvgauss) has
been added.
It is now possible to efficiently reuse scipy.stats.binned_statistic_dd
with new values by providing the result of a previous call to the function.
scipy.stats.hmean now handles input with zeros more gracefully.
The beta-binomial distribution is now available in scipy.stats.betabinom.
scipy.stats.zscore, scipy.stats.circmean, scipy.stats.circstd, and
scipy.stats.circvar now support the nan_policy argument for enhanced
handling of NaN values
scipy.stats.entropy now accepts an axis argument
scipy.stats.gaussian_kde.resample now accepts a seed argument to empower
reproducibility
scipy.stats.multiscale_graphcorr has been added for calculation of the
multiscale graph correlation (MGC) test statistic
scipy.stats.kendalltau performance has improved, especially for large inputs,
due to improved cache usage
scipy.stats.truncnorm distribution has been rewritten to support much wider
tails
Deprecated features
scipy deprecations
Support for NumPy functions exposed via the root SciPy namespace is deprecated
and will be removed in 2.0.0. For example, if you use scipy.rand or
scipy.diag, you should change your code to directly use
numpy.random.default_rng or numpy.diag, respectively.
They remain available in the currently continuing Scipy 1.x release series.
The exception to this rule is using scipy.fft as a function --
:mod:scipy.fft is now meant to be used only as a module, so the ability to
call scipy.fft(...) will be removed in SciPy 1.5.0.
In scipy.spatial.Rotation methods from_dcm, as_dcm were renamed to
from_matrix, as_matrix respectively. The old names will be removed in
SciPy 1.6.0.
Backwards incompatible changes
scipy.special changes
The deprecated functions hyp2f0, hyp1f2, and hyp3f0 have been
removed.
The deprecated function bessel_diff_formula has been removed.
The function i0 is no longer registered with numpy.dual, so that
numpy.dual.i0 will unconditionally refer to the NumPy version regardless
of whether scipy.special is imported.
The function expn has been changed to return nan outside of its
domain of definition (x, n < 0) instead of inf.
scipy.sparse changes
Sparse matrix reshape now raises an error if shape is not two-dimensional, rather than guessing what was meant. The behavior is now the same as before SciPy 1.1.0.
scipy.spatial changes
The default behavior of the match_vectors method of
scipy.spatial.transform.Rotation was changed for input vectors
that are not normalized and not of equal lengths.
Previously, such vectors would be normalized within the method.
Now, the calculated rotation takes the vector length into account, longer
vectors will have a larger weight. For more details, see
https://github.com/scipy/scipy/issues/10968.
scipy.signal changes
scipy.signal.resample behavior for length-1 signal inputs has been
fixed to output a constant (DC) value rather than an impulse, consistent with
the assumption of signal periodicity in the FFT method.
scipy.signal.cwt now performs complex conjugation and time-reversal of
wavelet data, which is a backwards-incompatible bugfix for
time-asymmetric wavelets.
scipy.stats changes
scipy.stats.loguniform added with better documentation as (an alias for
scipy.stats.reciprocal). loguniform generates random variables
that are equally likely in the log space; e.g., 1, 10 and 100
are all equally likely if loguniform(10 ** 0, 10 ** 2).rvs() is used.
Other changes
The LSODA method of scipy.integrate.solve_ivp now correctly detects stiff
problems.
scipy.spatial.cKDTree now accepts and correctly handles empty input data
scipy.stats.binned_statistic_dd now calculates the standard deviation
statistic in a numerically stable way.
scipy.stats.binned_statistic_dd now throws an error if the input data
contains either np.nan or np.inf. Similarly, in scipy.stats now all
continuous distributions' .fit() methods throw an error if the input data
contain any instance of either np.nan or np.inf.
Authors
- @endolith
- Abhinav +
- Anne Archibald
- ashwinpathak20nov1996 +
- Danilo Augusto +
- Nelson Auner +
- aypiggott +
- Christoph Baumgarten
- Peter Bell
- Sebastian Berg
- Arman Bilge +
- Benedikt Boecking +
- Christoph Boeddeker +
- Daniel Bunting
- Evgeni Burovski
- Angeline Burrell +
- Angeline G. Burrell +
- CJ Carey
- Carlos Ramos Carreño +
- Mak Sze Chun +
- Malayaja Chutani +
- Christian Clauss +
- Jonathan Conroy +
- Stephen P Cook +
- Dylan Cutler +
- Anirudh Dagar +
- Aidan Dang +
- dankleeman +
- Brandon David +
- Tyler Dawson +
- Dieter Werthmüller
- Joe Driscoll +
- Jakub Dyczek +
- Dávid Bodnár
- Fletcher Easton +
- Stefan Endres
- etienne +
- Johann Faouzi
- Yu Feng
- Isuru Fernando +
- Matthew H Flamm
- Martin Gauch +
- Gabriel Gerlero +
- Ralf Gommers
- Chris Gorgolewski +
- Domen Gorjup +
- Edouard Goudenhoofdt +
- Jan Gwinner +
- Maja Gwozdz +
- Matt Haberland
- hadshirt +
- Pierre Haessig +
- David Hagen
- Charles Harris
- Gina Helfrich +
- Alex Henrie +
- Francisco J. Hernandez Heras +
- Andreas Hilboll
- Lindsey Hiltner
- Thomas Hisch
- Min ho Kim +
- Gert-Ludwig Ingold
- jakobjakobson13 +
- Todd Jennings
- He Jia
- Muhammad Firmansyah Kasim +
- Andrew Knyazev +
- Holger Kohr +
- Mateusz Konieczny +
- Krzysztof Pióro +
- Philipp Lang +
- Peter Mahler Larsen +
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Chelsea Liu +
- Jesse Livezey
- Peter Lysakovski +
- Jason Manley +
- Michael Marien +
- Nikolay Mayorov
- G. D. McBain +
- Sam McCormack +
- Melissa Weber Mendonça +
- Kevin Michel +
- mikeWShef +
- Sturla Molden
- Eric Moore
- Peyton Murray +
- Andrew Nelson
- Clement Ng +
- Juan Nunez-Iglesias
- Renee Otten +
- Kellie Ottoboni +
- Ayappan P
- Sambit Panda +
- Tapasweni Pathak +
- Oleksandr Pavlyk
- Fabian Pedregosa
- Petar Mlinarić
- Matti Picus
- Marcel Plch +
- Christoph Pohl +
- Ilhan Polat
- Siddhesh Poyarekar +
- Ioannis Prapas +
- James Alan Preiss +
- Yisheng Qiu +
- Eric Quintero
- Bharat Raghunathan +
- Tyler Reddy
- Joscha Reimer
- Antonio Horta Ribeiro
- Lucas Roberts
- rtshort +
- Josua Sassen
- Kevin Sheppard
- Scott Sievert
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- tborisow +
- Étienne Tremblay +
- tuxcell +
- Miguel de Val-Borro
- Andrew Valentine +
- Hugo van Kemenade
- Paul van Mulbregt
- Sebastiano Vigna
- Pauli Virtanen
- Dany Vohl +
- Ben Walsh +
- Huize Wang +
- Warren Weckesser
- Anreas Weh +
- Joseph Weston +
- Adrian Wijaya +
- Timothy Willard +
- Josh Wilson
- Kentaro Yamamoto +
- Dave Zbarsky +
A total of 141 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.
- Python
Published by tylerjereddy over 6 years ago
scipy - SciPy 1.3.2
SciPy 1.3.2 is a bug-fix and maintenance release that adds support for Python 3.8.
Authors
- CJ Carey
- Dany Vohl
- Martin Gauch +
- Ralf Gommers
- Matt Haberland
- Eric Larson
- Nikolay Mayorov
- Sam McCormack +
- Andrew Nelson
- Tyler Reddy
- Pauli Virtanen
- Huize Wang +
- Warren Weckesser
- Joseph Weston +
A total of 14 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.
- Python
Published by tylerjereddy over 6 years ago
scipy - SciPy 1.3.1
SciPy 1.3.1 is a bug-fix release with no new features compared to 1.3.0.
Authors
- Matt Haberland
- Geordie McBain
- Yu Feng
- Evgeni Burovski
- Sturla Molden
- Tapasweni Pathak
- Eric Larson
- Peter Bell
- Carlos Ramos Carreño +
- Ralf Gommers
- David Hagen
- Antony Lee
- Ayappan P
- Tyler Reddy
- Pauli Virtanen
A total of 15 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.
- Python
Published by tylerjereddy almost 7 years ago
scipy - SciPy 1.2.2
SciPy 1.2.2 Release Notes
SciPy 1.2.2 is a bug-fix release with no new features compared to 1.2.1.
Importantly, the SciPy 1.2.2 wheels are built with OpenBLAS 0.3.7.dev to
alleviate issues with SkylakeX AVX512 kernels.
Authors
- CJ Carey
- Tyler Dawson +
- Ralf Gommers
- Kai Striega
- Andrew Nelson
- Tyler Reddy
- Kevin Sheppard +
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.
- Python
Published by tylerjereddy almost 7 years ago
scipy - SciPy 1.3.0
SciPy 1.3.0 Release Notes
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some 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.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- Three new
statsfunctions, a rewrite ofpearsonr, and an exact computation of the Kolmogorov-Smirnov two-sample test - A new Cython API for bounded scalar-function root-finders in
scipy.optimize - Substantial
CSRandCSCsparse matrix indexing performance improvements - Added support for interpolation of rotations with continuous angular
rate and acceleration in
RotationSpline
New features
scipy.interpolate improvements
A new class CubicHermiteSpline is introduced. It is a piecewise-cubic
interpolator which matches observed values and first derivatives. Existing
cubic interpolators CubicSpline, PchipInterpolator and
Akima1DInterpolator were made subclasses of CubicHermiteSpline.
scipy.io improvements
For the Attribute-Relation File Format (ARFF) scipy.io.arff.loadarff
now supports relational attributes.
scipy.io.mmread can now parse Matrix Market format files with empty lines.
scipy.linalg improvements
Added wrappers for ?syconv routines, which convert a symmetric matrix
given by a triangular matrix factorization into two matrices and vice versa.
scipy.linalg.clarkson_woodruff_transform now uses an algorithm that leverages
sparsity. This may provide a 60-90 percent speedup for dense input matrices.
Truly sparse input matrices should also benefit from the improved sketch
algorithm, which now correctly runs in O(nnz(A)) time.
Added new functions to calculate symmetric Fiedler matrices and
Fiedler companion matrices, named scipy.linalg.fiedler and
scipy.linalg.fiedler_companion, respectively. These may be used
for root finding.
scipy.ndimage improvements
Gaussian filter performances may improve by an order of magnitude in
some cases, thanks to removal of a dependence on np.polynomial. This
may impact scipy.ndimage.gaussian_filter for example.
scipy.optimize improvements
The scipy.optimize.brute minimizer obtained a new keyword workers, which
can be used to parallelize computation.
A Cython API for bounded scalar-function root-finders in scipy.optimize
is available in a new module scipy.optimize.cython_optimize via cimport.
This API may be used with nogil and prange to loop
over an array of function arguments to solve for an array of roots more
quickly than with pure Python.
'interior-point' is now the default method for linprog, and
'interior-point' now uses SuiteSparse for sparse problems when the
required scikits (scikit-umfpack and scikit-sparse) are available.
On benchmark problems (gh-10026), execution time reductions by factors of 2-3
were typical. Also, a new method='revised simplex' has been added.
It is not as fast or robust as method='interior-point', but it is a faster,
more robust, and equally accurate substitute for the legacy
method='simplex'.
differential_evolution can now use a Bounds class to specify the
bounds for the optimizing argument of a function.
scipy.optimize.dual_annealing performance improvements related to
vectorisation of some internal code.
scipy.signal improvements
Two additional methods of discretization are now supported by
scipy.signal.cont2discrete: impulse and foh.
scipy.signal.firls now uses faster solvers
scipy.signal.detrend now has a lower physical memory footprint in some
cases, which may be leveraged using the new overwrite_data keyword argument
scipy.signal.firwin pass_zero argument now accepts new string arguments
that allow specification of the desired filter type: 'bandpass',
'lowpass', 'highpass', and 'bandstop'
scipy.signal.sosfilt may have improved performance due to lower retention
of the global interpreter lock (GIL) in algorithm
scipy.sparse improvements
A new keyword was added to csgraph.dijsktra that
allows users to query the shortest path to ANY of the passed in indices,
as opposed to the shortest path to EVERY passed index.
scipy.sparse.linalg.lsmr performance has been improved by roughly 10 percent
on large problems
Improved performance and reduced physical memory footprint of the algorithm
used by scipy.sparse.linalg.lobpcg
CSR and CSC sparse matrix fancy indexing performance has been
improved substantially
scipy.spatial improvements
scipy.spatial.ConvexHull now has a good attribute that can be used
alongsize the QGn Qhull options to determine which external facets of a
convex hull are visible from an external query point.
scipy.spatial.cKDTree.query_ball_point has been modernized to use some newer
Cython features, including GIL handling and exception translation. An issue
with return_sorted=True and scalar queries was fixed, and a new mode named
return_length was added. return_length only computes the length of the
returned indices list instead of allocating the array every time.
scipy.spatial.transform.RotationSpline has been added to enable interpolation
of rotations with continuous angular rates and acceleration
scipy.stats improvements
Added a new function to compute the Epps-Singleton test statistic,
scipy.stats.epps_singleton_2samp, which can be applied to continuous and
discrete distributions.
New functions scipy.stats.median_absolute_deviation and scipy.stats.gstd
(geometric standard deviation) were added. The scipy.stats.combine_pvalues
method now supports pearson, tippett and mudholkar_george pvalue
combination methods.
The scipy.stats.ortho_group and scipy.stats.special_ortho_group
rvs(dim) functions' algorithms were updated from a O(dim^4)
implementation to a O(dim^3) which gives large speed improvements
for dim>100.
A rewrite of scipy.stats.pearsonr to use a more robust algorithm,
provide meaningful exceptions and warnings on potentially pathological input,
and fix at least five separate reported issues in the original implementation.
Improved the precision of hypergeom.logcdf and hypergeom.logsf.
Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing
the previously approximate computation for the two-sided test stats.ks_2samp.
Also added a one-sided, two-sample KS test, and a keyword alternative to
stats.ks_2samp.
Backwards incompatible changes
scipy.interpolate changes
Functions from scipy.interpolate (spleval, spline, splmake,
and spltopp) and functions from scipy.misc (bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow, toimage) have been removed. The former set has
been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0.
Similarly, aliases from scipy.misc (comb, factorial,
factorial2, factorialk, logsumexp, pade, info, source,
who) which have been deprecated since v1.0.0 are removed.
SciPy documentation for
v1.1.0 <https://docs.scipy.org/doc/scipy-1.1.0/reference/misc.html>__
can be used to track the new import locations for the relocated functions.
scipy.linalg changes
For pinv, pinv2, and pinvh, the default cutoff values are changed
for consistency (see the docs for the actual values).
scipy.optimize changes
The default method for linprog is now 'interior-point'. The method's
robustness and speed come at a cost: solutions may not be accurate to
machine precision or correspond with a vertex of the polytope defined
by the constraints. To revert to the original simplex method,
include the argument method='simplex'.
scipy.stats changes
Previously, ks_2samp(data1, data2) would run a two-sided test and return
the approximated p-value. The new signature, ks_2samp(data1, data2,
alternative="two-sided", method="auto"), still runs the two-sided test by
default but returns the exact p-value for small samples and the approximated
value for large samples. method="asymp" would be equivalent to the
old version but auto is the better choice.
Other changes
Our tutorial has been expanded with a new section on global optimizers
There has been a rework of the stats.distributions tutorials.
scipy.optimize now correctly sets the convergence flag of the result to
CONVERR, a convergence error, for bounded scalar-function root-finders
if the maximum iterations has been exceeded, disp is false, and
full_output is true.
scipy.optimize.curve_fit no longer fails if xdata and ydata dtypes
differ; they are both now automatically cast to float64.
scipy.ndimage functions including binary_erosion, binary_closing, and
binary_dilation now require an integer value for the number of iterations,
which alleviates a number of reported issues.
Fixed normal approximation in case zero_method == "pratt" in
scipy.stats.wilcoxon.
Fixes for incorrect probabilities, broadcasting issues and thread-safety
related to stats distributions setting member variables inside _argcheck().
scipy.optimize.newton now correctly raises a RuntimeError, when default
arguments are used, in the case that a derivative of value zero is obtained,
which is a special case of failing to converge.
A draft toolchain roadmap is now available, laying out a compatibility plan including Python versions, C standards, and NumPy versions.
Authors
- ananyashreyjain +
- ApamNapat +
- Scott Calabrese Barton +
- Christoph Baumgarten
- Peter Bell +
- Jacob Blomgren +
- Doctor Bob +
- Mana Borwornpadungkitti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Vega Theil Carstensen +
- Robert Cimrman
- Forrest Collman +
- Pietro Cottone +
- David +
- Idan David +
- Christoph Deil
- Dieter Werthmüller
- Conner DiPaolo +
- Dowon
- Michael Dunphy +
- Peter Andreas Entschev +
- Gökçen Eraslan +
- Johann Faouzi +
- Yu Feng
- Piotr Figiel +
- Matthew H Flamm
- Franz Forstmayr +
- Christoph Gohlke
- Richard Janis Goldschmidt +
- Ralf Gommers
- Lars Grueter
- Sylvain Gubian
- Matt Haberland
- Yaroslav Halchenko
- Charles Harris
- Lindsey Hiltner
- JakobStruye +
- He Jia +
- Jwink3101 +
- Greg Kiar +
- Julius Bier Kirkegaard
- John Kirkham +
- Thomas Kluyver
- Vladimir Korolev +
- Joseph Kuo +
- Michael Lamparski +
- Eric Larson
- Denis Laxalde
- Katrin Leinweber
- Jesse Livezey
- ludcila +
- Dhruv Madeka +
- Magnus +
- Nikolay Mayorov
- Mark Mikofski
- Jarrod Millman
- Markus Mohrhard +
- Eric Moore
- Andrew Nelson
- Aki Nishimura +
- OGordon100 +
- Petar Mlinarić +
- Stefan Peterson
- Matti Picus +
- Ilhan Polat
- Aaron Pries +
- Matteo Ravasi +
- Tyler Reddy
- Ashton Reimer +
- Joscha Reimer
- rfezzani +
- Riadh +
- Lucas Roberts
- Heshy Roskes +
- Mirko Scholz +
- Taylor D. Scott +
- Srikrishna Sekhar +
- Kevin Sheppard +
- Sourav Singh
- skjerns +
- Kai Striega
- SyedSaifAliAlvi +
- Gopi Manohar T +
- Albert Thomas +
- Timon +
- Paul van Mulbregt
- Jacob Vanderplas
- Daniel Vargas +
- Pauli Virtanen
- VNMabus +
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Nate Yoder +
- Roman Yurchak
A total of 97 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.
- Python
Published by tylerjereddy about 7 years ago
scipy - SciPy 1.3.0rc2
SciPy 1.3.0 Release Notes
Note: Scipy 1.3.0 is not released yet!
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some 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.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- Three new
statsfunctions, a rewrite ofpearsonr, and an exact computation of the Kolmogorov-Smirnov two-sample test - A new Cython API for bounded scalar-function root-finders in
scipy.optimize - Substantial
CSRandCSCsparse matrix indexing performance improvements - Added support for interpolation of rotations with continuous angular
rate and acceleration in
RotationSpline
New features
scipy.interpolate improvements
A new class CubicHermiteSpline is introduced. It is a piecewise-cubic
interpolator which matches observed values and first derivatives. Existing
cubic interpolators CubicSpline, PchipInterpolator and
Akima1DInterpolator were made subclasses of CubicHermiteSpline.
scipy.io improvements
For the Attribute-Relation File Format (ARFF) scipy.io.arff.loadarff
now supports relational attributes.
scipy.io.mmread can now parse Matrix Market format files with empty lines.
scipy.linalg improvements
Added wrappers for ?syconv routines, which convert a symmetric matrix
given by a triangular matrix factorization into two matrices and vice versa.
scipy.linalg.clarkson_woodruff_transform now uses an algorithm that leverages
sparsity. This may provide a 60-90 percent speedup for dense input matrices.
Truly sparse input matrices should also benefit from the improved sketch
algorithm, which now correctly runs in O(nnz(A)) time.
Added new functions to calculate symmetric Fiedler matrices and
Fiedler companion matrices, named scipy.linalg.fiedler and
scipy.linalg.fiedler_companion, respectively. These may be used
for root finding.
scipy.ndimage improvements
Gaussian filter performances may improve by an order of magnitude in
some cases, thanks to removal of a dependence on np.polynomial. This
may impact scipy.ndimage.gaussian_filter for example.
scipy.optimize improvements
The scipy.optimize.brute minimizer obtained a new keyword workers, which
can be used to parallelize computation.
A Cython API for bounded scalar-function root-finders in scipy.optimize
is available in a new module scipy.optimize.cython_optimize via cimport.
This API may be used with nogil and prange to loop
over an array of function arguments to solve for an array of roots more
quickly than with pure Python.
'interior-point' is now the default method for linprog, and
'interior-point' now uses SuiteSparse for sparse problems when the
required scikits (scikit-umfpack and scikit-sparse) are available.
On benchmark problems (gh-10026), execution time reductions by factors of 2-3
were typical. Also, a new method='revised simplex' has been added.
It is not as fast or robust as method='interior-point', but it is a faster,
more robust, and equally accurate substitute for the legacy
method='simplex'.
differential_evolution can now use a Bounds class to specify the
bounds for the optimizing argument of a function.
scipy.optimize.dual_annealing performance improvements related to
vectorisation of some internal code.
scipy.signal improvements
Two additional methods of discretization are now supported by
scipy.signal.cont2discrete: impulse and foh.
scipy.signal.firls now uses faster solvers
scipy.signal.detrend now has a lower physical memory footprint in some
cases, which may be leveraged using the new overwrite_data keyword argument
scipy.signal.firwin pass_zero argument now accepts new string arguments
that allow specification of the desired filter type: 'bandpass',
'lowpass', 'highpass', and 'bandstop'
scipy.signal.sosfilt may have improved performance due to lower retention
of the global interpreter lock (GIL) in algorithm
scipy.sparse improvements
A new keyword was added to csgraph.dijsktra that
allows users to query the shortest path to ANY of the passed in indices,
as opposed to the shortest path to EVERY passed index.
scipy.sparse.linalg.lsmr performance has been improved by roughly 10 percent
on large problems
Improved performance and reduced physical memory footprint of the algorithm
used by scipy.sparse.linalg.lobpcg
CSR and CSC sparse matrix fancy indexing performance has been
improved substantially
scipy.spatial improvements
scipy.spatial.ConvexHull now has a good attribute that can be used
alongsize the QGn Qhull options to determine which external facets of a
convex hull are visible from an external query point.
scipy.spatial.cKDTree.query_ball_point has been modernized to use some newer
Cython features, including GIL handling and exception translation. An issue
with return_sorted=True and scalar queries was fixed, and a new mode named
return_length was added. return_length only computes the length of the
returned indices list instead of allocating the array every time.
scipy.spatial.transform.RotationSpline has been added to enable interpolation
of rotations with continuous angular rates and acceleration
scipy.stats improvements
Added a new function to compute the Epps-Singleton test statistic,
scipy.stats.epps_singleton_2samp, which can be applied to continuous and
discrete distributions.
New functions scipy.stats.median_absolute_deviation and scipy.stats.gstd
(geometric standard deviation) were added. The scipy.stats.combine_pvalues
method now supports pearson, tippett and mudholkar_george pvalue
combination methods.
The scipy.stats.ortho_group and scipy.stats.special_ortho_group
rvs(dim) functions' algorithms were updated from a O(dim^4)
implementation to a O(dim^3) which gives large speed improvements
for dim>100.
A rewrite of scipy.stats.pearsonr to use a more robust algorithm,
provide meaningful exceptions and warnings on potentially pathological input,
and fix at least five separate reported issues in the original implementation.
Improved the precision of hypergeom.logcdf and hypergeom.logsf.
Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing
the previously approximate computation for the two-sided test stats.ks_2samp.
Also added a one-sided, two-sample KS test, and a keyword alternative to
stats.ks_2samp.
Backwards incompatible changes
scipy.interpolate changes
Functions from scipy.interpolate (spleval, spline, splmake,
and spltopp) and functions from scipy.misc (bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow, toimage) have been removed. The former set has
been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0.
Similarly, aliases from scipy.misc (comb, factorial,
factorial2, factorialk, logsumexp, pade, info, source,
who) which have been deprecated since v1.0.0 are removed.
SciPy documentation for
v1.1.0 <https://docs.scipy.org/doc/scipy-1.1.0/reference/misc.html>__
can be used to track the new import locations for the relocated functions.
scipy.linalg changes
For pinv, pinv2, and pinvh, the default cutoff values are changed
for consistency (see the docs for the actual values).
scipy.stats changes
Previously, ks_2samp(data1, data2) would run a two-sided test and return
the approximated p-value. The new signature, ks_2samp(data1, data2,
alternative="two-sided", method="auto"), still runs the two-sided test by
default but returns the exact p-value for small samples and the approximated
value for large samples. method="asymp" would be equivalent to the
old version but auto is the better choice.
Other changes
Our tutorial has been expanded with a new section on global optimizers
There has been a rework of the stats.distributions tutorials.
scipy.optimize now correctly sets the convergence flag of the result to
CONVERR, a convergence error, for bounded scalar-function root-finders
if the maximum iterations has been exceeded, disp is false, and
full_output is true.
scipy.optimize.curve_fit no longer fails if xdata and ydata dtypes
differ; they are both now automatically cast to float64.
scipy.ndimage functions including binary_erosion, binary_closing, and
binary_dilation now require an integer value for the number of iterations,
which alleviates a number of reported issues.
Fixed normal approximation in case zero_method == "pratt" in
scipy.stats.wilcoxon.
Fixes for incorrect probabilities, broadcasting issues and thread-safety
related to stats distributions setting member variables inside _argcheck().
scipy.optimize.newton now correctly raises a RuntimeError, when default
arguments are used, in the case that a derivative of value zero is obtained,
which is a special case of failing to converge.
A draft toolchain roadmap is now available, laying out a compatibility plan including Python versions, C standards, and NumPy versions.
Authors
- ananyashreyjain +
- ApamNapat +
- Scott Calabrese Barton +
- Christoph Baumgarten
- Peter Bell +
- Jacob Blomgren +
- Doctor Bob +
- Mana Borwornpadungkitti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Vega Theil Carstensen +
- Robert Cimrman
- Forrest Collman +
- Pietro Cottone +
- David +
- Idan David +
- Christoph Deil
- Dieter Werthmüller
- Conner DiPaolo +
- Dowon
- Michael Dunphy +
- Peter Andreas Entschev +
- Gökçen Eraslan +
- Johann Faouzi +
- Yu Feng
- Piotr Figiel +
- Matthew H Flamm
- Franz Forstmayr +
- Christoph Gohlke
- Richard Janis Goldschmidt +
- Ralf Gommers
- Lars Grueter
- Sylvain Gubian
- Matt Haberland
- Yaroslav Halchenko
- Charles Harris
- Lindsey Hiltner
- JakobStruye +
- He Jia +
- Jwink3101 +
- Greg Kiar +
- Julius Bier Kirkegaard
- John Kirkham +
- Thomas Kluyver
- Vladimir Korolev +
- Joseph Kuo +
- Michael Lamparski +
- Eric Larson
- Denis Laxalde
- Katrin Leinweber
- Jesse Livezey
- ludcila +
- Dhruv Madeka +
- Magnus +
- Nikolay Mayorov
- Mark Mikofski
- Jarrod Millman
- Markus Mohrhard +
- Eric Moore
- Andrew Nelson
- Aki Nishimura +
- OGordon100 +
- Petar Mlinarić +
- Stefan Peterson
- Matti Picus +
- Ilhan Polat
- Aaron Pries +
- Matteo Ravasi +
- Tyler Reddy
- Ashton Reimer +
- Joscha Reimer
- rfezzani +
- Riadh +
- Lucas Roberts
- Heshy Roskes +
- Mirko Scholz +
- Taylor D. Scott +
- Srikrishna Sekhar +
- Kevin Sheppard +
- Sourav Singh
- skjerns +
- Kai Striega
- SyedSaifAliAlvi +
- Gopi Manohar T +
- Albert Thomas +
- Timon +
- Paul van Mulbregt
- Jacob Vanderplas
- Daniel Vargas +
- Pauli Virtanen
- VNMabus +
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Nate Yoder +
- Roman Yurchak
A total of 97 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.
- Python
Published by tylerjereddy about 7 years ago
scipy - SciPy 1.3.0rc1
SciPy 1.3.0 Release Notes
Note: Scipy 1.3.0 is not released yet!
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some 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.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- Three new
statsfunctions, a rewrite ofpearsonr, and an exact computation of the Kolmogorov-Smirnov two-sample test - A new Cython API for bounded scalar-function root-finders in
scipy.optimize - Substantial
CSRandCSCsparse matrix indexing performance improvements - Added support for interpolation of rotations with continuous angular
rate and acceleration in
RotationSpline
New features
scipy.interpolate improvements
A new class CubicHermiteSpline is introduced. It is a piecewise-cubic
interpolator which matches observed values and first derivatives. Existing
cubic interpolators CubicSpline, PchipInterpolator and
Akima1DInterpolator were made subclasses of CubicHermiteSpline.
scipy.io improvements
For the Attribute-Relation File Format (ARFF) scipy.io.arff.loadarff
now supports relational attributes.
scipy.io.mmread can now parse Matrix Market format files with empty lines.
scipy.linalg improvements
Added wrappers for ?syconv routines, which convert a symmetric matrix
given by a triangular matrix factorization into two matrices and vice versa.
scipy.linalg.clarkson_woodruff_transform now uses an algorithm that leverages
sparsity. This may provide a 60-90 percent speedup for dense input matrices.
Truly sparse input matrices should also benefit from the improved sketch
algorithm, which now correctly runs in O(nnz(A)) time.
Added new functions to calculate symmetric Fiedler matrices and
Fiedler companion matrices, named scipy.linalg.fiedler and
scipy.linalg.fiedler_companion, respectively. These may be used
for root finding.
scipy.ndimage improvements
Gaussian filter performances may improve by an order of magnitude in
some cases, thanks to removal of a dependence on np.polynomial. This
may impact scipy.ndimage.gaussian_filter for example.
scipy.optimize improvements
The scipy.optimize.brute minimizer obtained a new keyword workers, which
can be used to parallelize computation.
A Cython API for bounded scalar-function root-finders in scipy.optimize
is available in a new module scipy.optimize.cython_optimize via cimport.
This API may be used with nogil and prange to loop
over an array of function arguments to solve for an array of roots more
quickly than with pure Python.
'interior-point' is now the default method for linprog, and
'interior-point' now uses SuiteSparse for sparse problems when the
required scikits (scikit-umfpack and scikit-sparse) are available.
On benchmark problems (gh-10026), execution time reductions by factors of 2-3
were typical. Also, a new method='revised simplex' has been added.
It is not as fast or robust as method='interior-point', but it is a faster,
more robust, and equally accurate substitute for the legacy
method='simplex'.
differential_evolution can now use a Bounds class to specify the
bounds for the optimizing argument of a function.
scipy.optimize.dual_annealing performance improvements related to
vectorisation of some internal code.
scipy.signal improvements
Two additional methods of discretization are now supported by
scipy.signal.cont2discrete: impulse and foh.
scipy.signal.firls now uses faster solvers
scipy.signal.detrend now has a lower physical memory footprint in some
cases, which may be leveraged using the new overwrite_data keyword argument
scipy.signal.firwin pass_zero argument now accepts new string arguments
that allow specification of the desired filter type: 'bandpass',
'lowpass', 'highpass', and 'bandstop'
scipy.signal.sosfilt may have improved performance due to lower retention
of the global interpreter lock (GIL) in algorithm
scipy.sparse improvements
A new keyword was added to csgraph.dijsktra that
allows users to query the shortest path to ANY of the passed in indices,
as opposed to the shortest path to EVERY passed index.
scipy.sparse.linalg.lsmr performance has been improved by roughly 10 percent
on large problems
Improved performance and reduced physical memory footprint of the algorithm
used by scipy.sparse.linalg.lobpcg
CSR and CSC sparse matrix fancy indexing performance has been
improved substantially
scipy.spatial improvements
scipy.spatial.ConvexHull now has a good attribute that can be used
alongsize the QGn Qhull options to determine which external facets of a
convex hull are visible from an external query point.
scipy.spatial.cKDTree.query_ball_point has been modernized to use some newer
Cython features, including GIL handling and exception translation. An issue
with return_sorted=True and scalar queries was fixed, and a new mode named
return_length was added. return_length only computes the length of the
returned indices list instead of allocating the array every time.
scipy.spatial.transform.RotationSpline has been added to enable interpolation
of rotations with continuous angular rates and acceleration
scipy.stats improvements
Added a new function to compute the Epps-Singleton test statistic,
scipy.stats.epps_singleton_2samp, which can be applied to continuous and
discrete distributions.
New functions scipy.stats.median_absolute_deviation and scipy.stats.gstd
(geometric standard deviation) were added. The scipy.stats.combine_pvalues
method now supports pearson, tippett and mudholkar_george pvalue
combination methods.
The scipy.stats.ortho_group and scipy.stats.special_ortho_group
rvs(dim) functions' algorithms were updated from a O(dim^4)
implementation to a O(dim^3) which gives large speed improvements
for dim>100.
A rewrite of scipy.stats.pearsonr to use a more robust algorithm,
provide meaningful exceptions and warnings on potentially pathological input,
and fix at least five separate reported issues in the original implementation.
Improved the precision of hypergeom.logcdf and hypergeom.logsf.
Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing
the previously approximate computation for the two-sided test stats.ks_2samp.
Also added a one-sided, two-sample KS test, and a keyword alternative to
stats.ks_2samp.
Backwards incompatible changes
scipy.interpolate changes
Functions from scipy.interpolate (spleval, spline, splmake,
and spltopp) and functions from scipy.misc (bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow, toimage) have been removed. The former set has
been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0.
Similarly, aliases from scipy.misc (comb, factorial,
factorial2, factorialk, logsumexp, pade, info, source,
who) which have been deprecated since v1.0.0 are removed.
SciPy documentation for
v1.1.0 <https://docs.scipy.org/doc/scipy-1.1.0/reference/misc.html>__
can be used to track the new import locations for the relocated functions.
scipy.linalg changes
For pinv, pinv2, and pinvh, the default cutoff values are changed
for consistency (see the docs for the actual values).
scipy.stats changes
Previously, ks_2samp(data1, data2) would run a two-sided test and return
the approximated p-value. The new signature, ks_2samp(data1, data2,
alternative="two-sided", method="auto"), still runs the two-sided test by
default but returns the exact p-value for small samples and the approximated
value for large samples. method="asymp" would be equivalent to the
old version but auto is the better choice.
Other changes
Our tutorial has been expanded with a new section on global optimizers
There has been a rework of the stats.distributions tutorials.
scipy.optimize now correctly sets the convergence flag of the result to
CONVERR, a convergence error, for bounded scalar-function root-finders
if the maximum iterations has been exceeded, disp is false, and
full_output is true.
scipy.optimize.curve_fit no longer fails if xdata and ydata dtypes
differ; they are both now automatically cast to float64.
scipy.ndimage functions including binary_erosion, binary_closing, and
binary_dilation now require an integer value for the number of iterations,
which alleviates a number of reported issues.
Fixed normal approximation in case zero_method == "pratt" in
scipy.stats.wilcoxon.
Fixes for incorrect probabilities, broadcasting issues and thread-safety
related to stats distributions setting member variables inside _argcheck().
scipy.optimize.newton now correctly raises a RuntimeError, when default
arguments are used, in the case that a derivative of value zero is obtained,
which is a special case of failing to converge.
A draft toolchain roadmap is now available, laying out a compatibility plan including Python versions, C standards, and NumPy versions.
Authors
- ananyashreyjain +
- ApamNapat +
- Scott Calabrese Barton +
- Christoph Baumgarten
- Peter Bell +
- Jacob Blomgren +
- Doctor Bob +
- Mana Borwornpadungkitti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Vega Theil Carstensen +
- Robert Cimrman
- Forrest Collman +
- Pietro Cottone +
- David +
- Idan David +
- Christoph Deil
- Dieter Werthmüller
- Conner DiPaolo +
- Dowon
- Michael Dunphy +
- Peter Andreas Entschev +
- Gökçen Eraslan +
- Johann Faouzi +
- Yu Feng
- Piotr Figiel +
- Matthew H Flamm
- Franz Forstmayr +
- Christoph Gohlke
- Richard Janis Goldschmidt +
- Ralf Gommers
- Lars Grueter
- Sylvain Gubian
- Matt Haberland
- Yaroslav Halchenko
- Charles Harris
- Lindsey Hiltner
- JakobStruye +
- He Jia +
- Jwink3101 +
- Greg Kiar +
- Julius Bier Kirkegaard
- John Kirkham +
- Thomas Kluyver
- Vladimir Korolev +
- Joseph Kuo +
- Michael Lamparski +
- Eric Larson
- Denis Laxalde
- Katrin Leinweber
- Jesse Livezey
- ludcila +
- Dhruv Madeka +
- Magnus +
- Nikolay Mayorov
- Mark Mikofski
- Jarrod Millman
- Markus Mohrhard +
- Eric Moore
- Andrew Nelson
- Aki Nishimura +
- OGordon100 +
- Petar Mlinarić +
- Stefan Peterson
- Matti Picus +
- Ilhan Polat
- Aaron Pries +
- Matteo Ravasi +
- Tyler Reddy
- Ashton Reimer +
- Joscha Reimer
- rfezzani +
- Riadh +
- Lucas Roberts
- Heshy Roskes +
- Mirko Scholz +
- Taylor D. Scott +
- Srikrishna Sekhar +
- Kevin Sheppard +
- Sourav Singh
- skjerns +
- Kai Striega
- SyedSaifAliAlvi +
- Gopi Manohar T +
- Albert Thomas +
- Timon +
- Paul van Mulbregt
- Jacob Vanderplas
- Daniel Vargas +
- Pauli Virtanen
- VNMabus +
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Nate Yoder +
- Roman Yurchak
A total of 97 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.
- Python
Published by tylerjereddy about 7 years ago
scipy - SciPy 1.2.1
SciPy 1.2.1 Release Notes
SciPy 1.2.1 is a bug-fix release with no new features compared to 1.2.0.
Most importantly, it solves the issue that 1.2.0 cannot be installed
from source on Python 2.7 because of non-ASCII character issues.
It is also notable that SciPy 1.2.1 wheels were built with OpenBLAS
0.3.5.dev, which may alleviate some linear algebra issues observed
in SciPy 1.2.0.
Authors
- Eric Larson
- Mark Mikofski
- Evgeni Burovski
- Ralf Gommers
- Eric Moore
- Tyler Reddy
- Python
Published by tylerjereddy over 7 years ago
scipy - SciPy 1.2.0
SciPy 1.2.0 Release Notes
SciPy 1.2.0 is the culmination of 6 months of hard work. It contains
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.2.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
Note: This will be the last SciPy release to support Python 2.7. Consequently, the 1.2.x series will be a long term support (LTS) release; we will backport bug fixes until 1 Jan 2020.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- 1-D root finding improvements with a new solver,
toms748, and a new unified interface,root_scalar - New
dual_annealingoptimization method that combines stochastic and local deterministic searching - A new optimization algorithm,
shgo(simplicial homology global optimization) for derivative free optimization problems - A new category of quaternion-based transformations are available in
scipy.spatial.transform
New features
scipy.ndimage improvements
Proper spline coefficient calculations have been added for the mirror,
wrap, and reflect modes of scipy.ndimage.rotate
scipy.fftpack improvements
DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in
scipy.fftpack.
scipy.interpolate improvements
scipy.interpolate.pade now accepts a new argument for the order of the
numerator
scipy.cluster improvements
scipy.cluster.vq.kmeans2 gained a new initialization method, kmeans++.
scipy.special improvements
The function softmax was added to scipy.special.
scipy.optimize improvements
The one-dimensional nonlinear solvers have been given a unified interface
scipy.optimize.root_scalar, similar to the scipy.optimize.root interface
for multi-dimensional solvers. scipy.optimize.root_scalar(f, bracket=[a ,b],
method="brenth") is equivalent to scipy.optimize.brenth(f, a ,b). If no
method is specified, an appropriate one will be selected based upon the
bracket and the number of derivatives available.
The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within
an enclosing interval has been added as scipy.optimize.toms748. This provides
guaranteed convergence to a root with convergence rate per function evaluation
of approximately 1.65 (for sufficiently well-behaved functions.)
differential_evolution now has the updating and workers keywords.
The first chooses between continuous updating of the best solution vector (the
default), or once per generation. Continuous updating can lead to faster
convergence. The workers keyword accepts an int or map-like callable,
and parallelises the solver (having the side effect of updating once per
generation). Supplying an int evaluates the trial solutions in N parallel
parts. Supplying a map-like callable allows other parallelisation approaches
(such as mpi4py, or joblib) to be used.
dual_annealing (and shgo below) is a powerful new general purpose
global optizimation (GO) algorithm. dual_annealing uses two annealing
processes to accelerate the convergence towards the global minimum of an
objective mathematical function. The first annealing process controls the
stochastic Markov chain searching and the second annealing process controls the
deterministic minimization. So, dual annealing is a hybrid method that takes
advantage of stochastic and local deterministic searching in an efficient way.
shgo (simplicial homology global optimization) is a similar algorithm
appropriate for solving black box and derivative free optimization (DFO)
problems. The algorithm generally converges to the global solution in finite
time. The convergence holds for non-linear inequality and
equality constraints. In addition to returning a global minimum, the
algorithm also returns any other global and local minima found after every
iteration. This makes it useful for exploring the solutions in a domain.
scipy.optimize.newton can now accept a scalar or an array
MINPACK usage is now thread-safe, such that MINPACK + callbacks may
be used on multiple threads.
scipy.signal improvements
Digital filter design functions now include a parameter to specify the sampling
rate. Previously, digital filters could only be specified using normalized
frequency, but different functions used different scales (e.g. 0 to 1 for
butter vs 0 to π for freqz), leading to errors and confusion. With
the fs parameter, ordinary frequencies can now be entered directly into
functions, with the normalization handled internally.
find_peaks and related functions no longer raise an exception if the
properties of a peak have unexpected values (e.g. a prominence of 0). A
PeakPropertyWarning is given instead.
The new keyword argument plateau_size was added to find_peaks.
plateau_size may be used to select peaks based on the length of the
flat top of a peak.
welch() and csd() methods in scipy.signal now support calculation
of a median average PSD, using average='mean' keyword
scipy.sparse improvements
The scipy.sparse.bsr_matrix.tocsr method is now implemented directly instead
of converting via COO format, and the scipy.sparse.bsr_matrix.tocsc method
is now also routed via CSR conversion instead of COO. The efficiency of both
conversions is now improved.
The issue where SuperLU or UMFPACK solvers crashed on matrices with
non-canonical format in scipy.sparse.linalg was fixed. The solver wrapper
canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK
solver.
The largest option of scipy.sparse.linalg.lobpcg() was fixed to have
a correct (and expected) behavior. The order of the eigenvalues was made
consistent with the ARPACK solver (eigs()), i.e. ascending for the
smallest eigenvalues, and descending for the largest eigenvalues.
The scipy.sparse.random function is now faster and also supports integer and
complex values by passing the appropriate value to the dtype argument.
scipy.spatial improvements
The function scipy.spatial.distance.jaccard was modified to return 0 instead
of np.nan when two all-zero vectors are compared.
Support for the Jensen Shannon distance, the square-root of the divergence, has
been added under scipy.spatial.distance.jensenshannon
An optional keyword was added to the function
scipy.spatial.cKDTree.query_ball_point() to sort or not sort the returned
indices. Not sorting the indices can speed up calls.
A new category of quaternion-based transformations are available in
scipy.spatial.transform, including spherical linear interpolation of
rotations (Slerp), conversions to and from quaternions, Euler angles,
and general rotation and inversion capabilities
(spatial.transform.Rotation), and uniform random sampling of 3D
rotations (spatial.transform.Rotation.random).
scipy.stats improvements
The Yeo-Johnson power transformation is now supported (yeojohnson,
yeojohnson_llf, yeojohnson_normmax, yeojohnson_normplot). Unlike
the Box-Cox transformation, the Yeo-Johnson transformation can accept negative
values.
Added a general method to sample random variates based on the density only, in
the new function rvs_ratio_uniforms.
The Yule-Simon distribution (yulesimon) was added -- this is a new
discrete probability distribution.
stats and mstats now have access to a new regression method,
siegelslopes, a robust linear regression algorithm
scipy.stats.gaussian_kde now has the ability to deal with weighted samples,
and should have a modest improvement in performance
Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for scipy.stats.levy_stable.
The Brunner-Munzel test is now available as brunnermunzel in stats
and mstats
scipy.linalg improvements
scipy.linalg.lapack now exposes the LAPACK routines using the Rectangular
Full Packed storage (RFP) for upper triangular, lower triangular, symmetric,
or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition
routines are now available as well.
Deprecated features
The functions hyp2f0, hyp1f2 and hyp3f0 in scipy.special have
been deprecated.
Backwards incompatible changes
LAPACK version 3.4.0 or later is now required. Building with Apple Accelerate is no longer supported.
The function scipy.linalg.subspace_angles(A, B) now gives correct
results for all angles. Before this, the function only returned
correct values for those angles which were greater than pi/4.
Support for the Bento build system has been removed. Bento has not been maintained for several years, and did not have good Python 3 or wheel support, hence it was time to remove it.
The required signature of scipy.optimize.lingprog method=simplex
callback function has changed. Before iteration begins, the simplex solver
first converts the problem into a standard form that does not, in general,
have the same variables or constraints
as the problem defined by the user. Previously, the simplex solver would pass a
user-specified callback function several separate arguments, such as the
current solution vector xk, corresponding to this standard form problem.
Unfortunately, the relationship between the standard form problem and the
user-defined problem was not documented, limiting the utility of the
information passed to the callback function.
In addition to numerous bug fix changes, the simplex solver now passes a
user-specified callback function a single OptimizeResult object containing
information that corresponds directly to the user-defined problem. In future
releases, this OptimizeResult object may be expanded to include additional
information, such as variables corresponding to the standard-form problem and
information concerning the relationship between the standard-form and
user-defined problems.
The implementation of scipy.sparse.random has changed, and this affects the
numerical values returned for both sparse.random and sparse.rand for
some matrix shapes and a given seed.
scipy.optimize.newton will no longer use Halley's method in cases where it
negatively impacts convergence
Other changes
Authors
- @endolith
- @luzpaz
- Hameer Abbasi +
- akahard2dj +
- Anton Akhmerov
- Joseph Albert
- alexthomas93 +
- ashish +
- atpage +
- Blair Azzopardi +
- Yoshiki Vázquez Baeza
- Bence Bagi +
- Christoph Baumgarten
- Lucas Bellomo +
- BH4 +
- Aditya Bharti
- Max Bolingbroke
- François Boulogne
- Ward Bradt +
- Matthew Brett
- Evgeni Burovski
- Rafał Byczek +
- Alfredo Canziani +
- CJ Carey
- Lucía Cheung +
- Poom Chiarawongse +
- Jeanne Choo +
- Robert Cimrman
- Graham Clenaghan +
- cynthia-rempel +
- Johannes Damp +
- Jaime Fernandez del Rio
- Dowon +
- emmi474 +
- Stefan Endres +
- Thomas Etherington +
- Piotr Figiel
- Alex Fikl +
- fo40225 +
- Joseph Fox-Rabinovitz
- Lars G
- Abhinav Gautam +
- Stiaan Gerber +
- C.A.M. Gerlach +
- Ralf Gommers
- Todd Goodall
- Lars Grueter +
- Sylvain Gubian +
- Matt Haberland
- David Hagen
- Will Handley +
- Charles Harris
- Ian Henriksen
- Thomas Hisch +
- Theodore Hu
- Michael Hudson-Doyle +
- Nicolas Hug +
- jakirkham +
- Jakob Jakobson +
- James +
- Jan Schlüter
- jeanpauphilet +
- josephmernst +
- Kai +
- Kai-Striega +
- kalash04 +
- Toshiki Kataoka +
- Konrad0 +
- Tom Krauss +
- Johannes Kulick
- Lars Grüter +
- Eric Larson
- Denis Laxalde
- Will Lee +
- Katrin Leinweber +
- Yin Li +
- P. L. Lim +
- Jesse Livezey +
- Duncan Macleod +
- MatthewFlamm +
- Nikolay Mayorov
- Mike McClurg +
- Christian Meyer +
- Mark Mikofski
- Naoto Mizuno +
- mohmmadd +
- Nathan Musoke
- Anju Geetha Nair +
- Andrew Nelson
- Ayappan P +
- Nick Papior
- Haesun Park +
- Ronny Pfannschmidt +
- pijyoi +
- Ilhan Polat
- Anthony Polloreno +
- Ted Pudlik
- puenka
- Eric Quintero
- Pradeep Reddy Raamana +
- Vyas Ramasubramani +
- Ramon Viñas +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro
- richardjgowers +
- Rob +
- robbystk +
- Lucas Roberts +
- rohan +
- Joaquin Derrac Rus +
- Josua Sassen +
- Bruce Sharpe +
- Max Shinn +
- Scott Sievert
- Sourav Singh
- Strahinja Lukić +
- Kai Striega +
- Shinya SUZUKI +
- Mike Toews +
- Piotr Uchwat
- Miguel de Val-Borro +
- Nicky van Foreest
- Paul van Mulbregt
- Gael Varoquaux
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Joshua Wharton +
- Bernhard M. Wiedemann +
- Eric Wieser
- Josh Wilson
- Tony Xiang +
- Roman Yurchak +
- Roy Zywina +
A total of 137 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.
- Python
Published by tylerjereddy over 7 years ago
scipy - SciPy 1.2.0rc2
SciPy 1.2.0 Release Notes
Note: Scipy 1.2.0 is not released yet!
SciPy 1.2.0 is the culmination of 6 months of hard work. It contains
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.2.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
.. note:: This will be the last SciPy release to support Python 2.7. Consequently, the 1.2.x series will be a long term support (LTS) release; we will backport bug fixes until 1 Jan 2020.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- 1-D root finding improvements with a new solver,
toms748, and a new unified interface,root_scalar - New
dual_annealingoptimization method that combines stochastic and local deterministic searching - A new optimization algorithm,
shgo(simplicial homology global optimization) for derivative free optimization problems - A new category of quaternion-based transformations are available in
scipy.spatial.transform
New features
scipy.ndimage improvements
Proper spline coefficient calculations have been added for the mirror,
wrap, and reflect modes of scipy.ndimage.rotate
scipy.fftpack improvements
DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in
scipy.fftpack.
scipy.interpolate improvements
scipy.interpolate.pade now accepts a new argument for the order of the
numerator
scipy.cluster improvements
scipy.cluster.vq.kmeans2 gained a new initialization method, kmeans++.
scipy.special improvements
The function softmax was added to scipy.special.
scipy.optimize improvements
The one-dimensional nonlinear solvers have been given a unified interface
scipy.optimize.root_scalar, similar to the scipy.optimize.root interface
for multi-dimensional solvers. scipy.optimize.root_scalar(f, bracket=[a ,b],
method="brenth") is equivalent to scipy.optimize.brenth(f, a ,b). If no
method is specified, an appropriate one will be selected based upon the
bracket and the number of derivatives available.
The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within
an enclosing interval has been added as scipy.optimize.toms748. This provides
guaranteed convergence to a root with convergence rate per function evaluation
of approximately 1.65 (for sufficiently well-behaved functions.)
differential_evolution now has the updating and workers keywords.
The first chooses between continuous updating of the best solution vector (the
default), or once per generation. Continuous updating can lead to faster
convergence. The workers keyword accepts an int or map-like callable,
and parallelises the solver (having the side effect of updating once per
generation). Supplying an int evaluates the trial solutions in N parallel
parts. Supplying a map-like callable allows other parallelisation approaches
(such as mpi4py, or joblib) to be used.
dual_annealing (and shgo below) is a powerful new general purpose
global optizimation (GO) algorithm. dual_annealing uses two annealing
processes to accelerate the convergence towards the global minimum of an
objective mathematical function. The first annealing process controls the
stochastic Markov chain searching and the second annealing process controls the
deterministic minimization. So, dual annealing is a hybrid method that takes
advantage of stochastic and local deterministic searching in an efficient way.
shgo (simplicial homology global optimization) is a similar algorithm
appropriate for solving black box and derivative free optimization (DFO)
problems. The algorithm generally converges to the global solution in finite
time. The convergence holds for non-linear inequality and
equality constraints. In addition to returning a global minimum, the
algorithm also returns any other global and local minima found after every
iteration. This makes it useful for exploring the solutions in a domain.
scipy.optimize.newton can now accept a scalar or an array
MINPACK usage is now thread-safe, such that MINPACK + callbacks may
be used on multiple threads.
scipy.signal improvements
Digital filter design functions now include a parameter to specify the sampling
rate. Previously, digital filters could only be specified using normalized
frequency, but different functions used different scales (e.g. 0 to 1 for
butter vs 0 to π for freqz), leading to errors and confusion. With
the fs parameter, ordinary frequencies can now be entered directly into
functions, with the normalization handled internally.
find_peaks and related functions no longer raise an exception if the
properties of a peak have unexpected values (e.g. a prominence of 0). A
PeakPropertyWarning is given instead.
The new keyword argument plateau_size was added to find_peaks.
plateau_size may be used to select peaks based on the length of the
flat top of a peak.
welch() and csd() methods in scipy.signal now support calculation
of a median average PSD, using average='mean' keyword
scipy.sparse improvements
The scipy.sparse.bsr_matrix.tocsr method is now implemented directly instead
of converting via COO format, and the scipy.sparse.bsr_matrix.tocsc method
is now also routed via CSR conversion instead of COO. The efficiency of both
conversions is now improved.
The issue where SuperLU or UMFPACK solvers crashed on matrices with
non-canonical format in scipy.sparse.linalg was fixed. The solver wrapper
canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK
solver.
The largest option of scipy.sparse.linalg.lobpcg() was fixed to have
a correct (and expected) behavior. The order of the eigenvalues was made
consistent with the ARPACK solver (eigs()), i.e. ascending for the
smallest eigenvalues, and descending for the largest eigenvalues.
The scipy.sparse.random function is now faster and also supports integer and
complex values by passing the appropriate value to the dtype argument.
scipy.spatial improvements
The function scipy.spatial.distance.jaccard was modified to return 0 instead
of np.nan when two all-zero vectors are compared.
Support for the Jensen Shannon distance, the square-root of the divergence, has
been added under scipy.spatial.distance.jensenshannon
An optional keyword was added to the function
scipy.spatial.cKDTree.query_ball_point() to sort or not sort the returned
indices. Not sorting the indices can speed up calls.
A new category of quaternion-based transformations are available in
scipy.spatial.transform, including spherical linear interpolation of
rotations (Slerp), conversions to and from quaternions, Euler angles,
and general rotation and inversion capabilities
(spatial.transform.Rotation), and uniform random sampling of 3D
rotations (spatial.transform.Rotation.random).
scipy.stats improvements
The Yeo-Johnson power transformation is now supported (yeojohnson,
yeojohnson_llf, yeojohnson_normmax, yeojohnson_normplot). Unlike
the Box-Cox transformation, the Yeo-Johnson transformation can accept negative
values.
Added a general method to sample random variates based on the density only, in
the new function rvs_ratio_uniforms.
The Yule-Simon distribution (yulesimon) was added -- this is a new
discrete probability distribution.
stats and mstats now have access to a new regression method,
siegelslopes, a robust linear regression algorithm
scipy.stats.gaussian_kde now has the ability to deal with weighted samples,
and should have a modest improvement in performance
Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for scipy.stats.levy_stable.
The Brunner-Munzel test is now available as brunnermunzel in stats
and mstats
scipy.linalg improvements
scipy.linalg.lapack now exposes the LAPACK routines using the Rectangular
Full Packed storage (RFP) for upper triangular, lower triangular, symmetric,
or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition
routines are now available as well.
Deprecated features
The functions hyp2f0, hyp1f2 and hyp3f0 in scipy.special have
been deprecated.
Backwards incompatible changes
LAPACK version 3.4.0 or later is now required. Building with Apple Accelerate is no longer supported.
The function scipy.linalg.subspace_angles(A, B) now gives correct
results for all angles. Before this, the function only returned
correct values for those angles which were greater than pi/4.
Support for the Bento build system has been removed. Bento has not been maintained for several years, and did not have good Python 3 or wheel support, hence it was time to remove it.
The required signature of scipy.optimize.lingprog method=simplex
callback function has changed. Before iteration begins, the simplex solver
first converts the problem into a standard form that does not, in general,
have the same variables or constraints
as the problem defined by the user. Previously, the simplex solver would pass a
user-specified callback function several separate arguments, such as the
current solution vector xk, corresponding to this standard form problem.
Unfortunately, the relationship between the standard form problem and the
user-defined problem was not documented, limiting the utility of the
information passed to the callback function.
In addition to numerous bug fix changes, the simplex solver now passes a
user-specified callback function a single OptimizeResult object containing
information that corresponds directly to the user-defined problem. In future
releases, this OptimizeResult object may be expanded to include additional
information, such as variables corresponding to the standard-form problem and
information concerning the relationship between the standard-form and
user-defined problems.
The implementation of scipy.sparse.random has changed, and this affects the
numerical values returned for both sparse.random and sparse.rand for
some matrix shapes and a given seed.
scipy.optimize.newton will no longer use Halley's method in cases where it
negatively impacts convergence
Other changes
Authors
- @endolith
- @luzpaz
- Hameer Abbasi +
- akahard2dj +
- Anton Akhmerov
- Joseph Albert
- alexthomas93 +
- ashish +
- atpage +
- Blair Azzopardi +
- Yoshiki Vázquez Baeza
- Bence Bagi +
- Christoph Baumgarten
- Lucas Bellomo +
- BH4 +
- Aditya Bharti
- Max Bolingbroke
- François Boulogne
- Ward Bradt +
- Matthew Brett
- Evgeni Burovski
- Rafał Byczek +
- Alfredo Canziani +
- CJ Carey
- Lucía Cheung +
- Poom Chiarawongse +
- Jeanne Choo +
- Robert Cimrman
- Graham Clenaghan +
- cynthia-rempel +
- Johannes Damp +
- Jaime Fernandez del Rio
- Dowon +
- emmi474 +
- Stefan Endres +
- Thomas Etherington +
- Piotr Figiel
- Alex Fikl +
- fo40225 +
- Joseph Fox-Rabinovitz
- Lars G
- Abhinav Gautam +
- Stiaan Gerber +
- C.A.M. Gerlach +
- Ralf Gommers
- Todd Goodall
- Lars Grueter +
- Sylvain Gubian +
- Matt Haberland
- David Hagen
- Will Handley +
- Charles Harris
- Ian Henriksen
- Thomas Hisch +
- Theodore Hu
- Michael Hudson-Doyle +
- Nicolas Hug +
- jakirkham +
- Jakob Jakobson +
- James +
- Jan Schlüter
- jeanpauphilet +
- josephmernst +
- Kai +
- Kai-Striega +
- kalash04 +
- Toshiki Kataoka +
- Konrad0 +
- Tom Krauss +
- Johannes Kulick
- Lars Grüter +
- Eric Larson
- Denis Laxalde
- Will Lee +
- Katrin Leinweber +
- Yin Li +
- P. L. Lim +
- Jesse Livezey +
- Duncan Macleod +
- MatthewFlamm +
- Nikolay Mayorov
- Mike McClurg +
- Christian Meyer +
- Mark Mikofski
- Naoto Mizuno +
- mohmmadd +
- Nathan Musoke
- Anju Geetha Nair +
- Andrew Nelson
- Ayappan P +
- Nick Papior
- Haesun Park +
- Ronny Pfannschmidt +
- pijyoi +
- Ilhan Polat
- Anthony Polloreno +
- Ted Pudlik
- puenka
- Eric Quintero
- Pradeep Reddy Raamana +
- Vyas Ramasubramani +
- Ramon Viñas +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro
- richardjgowers +
- Rob +
- robbystk +
- Lucas Roberts +
- rohan +
- Joaquin Derrac Rus +
- Josua Sassen +
- Bruce Sharpe +
- Max Shinn +
- Scott Sievert
- Sourav Singh
- Strahinja Lukić +
- Kai Striega +
- Shinya SUZUKI +
- Mike Toews +
- Piotr Uchwat
- Miguel de Val-Borro +
- Nicky van Foreest
- Paul van Mulbregt
- Gael Varoquaux
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Joshua Wharton +
- Bernhard M. Wiedemann +
- Eric Wieser
- Josh Wilson
- Tony Xiang +
- Roman Yurchak +
- Roy Zywina +
A total of 137 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.
- Python
Published by tylerjereddy over 7 years ago
scipy - SciPy 1.2.0rc1
SciPy 1.2.0 Release Notes
Note: Scipy 1.2.0 is not released yet!
SciPy 1.2.0 is the culmination of 6 months of hard work. It contains
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.2.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
Note: This will be the last SciPy release to support Python 2.7. Consequently, the 1.2.x series will be a long term support (LTS) release; we will backport bug fixes until 1 Jan 2020.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- 1-D root finding improvements with a new solver,
toms748, and a new unified interface,root_scalar - New
dual_annealingoptimization method that combines stochastic and local deterministic searching - A new optimization algorithm,
shgo(simplicial homology global optimization) for derivative free optimization problems - A new category of quaternion-based transformations are available in
scipy.spatial.transform
New features
scipy.ndimage improvements
Proper spline coefficient calculations have been added for the mirror,
wrap, and reflect modes of scipy.ndimage.rotate
scipy.fftpack improvements
DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in
scipy.fftpack.
scipy.interpolate improvements
scipy.interpolate.pade now accepts a new argument for the order of the
numerator
scipy.cluster improvements
scipy.cluster.vq.kmeans2 gained a new initialization method, kmeans++.
scipy.special improvements
The function softmax was added to scipy.special.
scipy.optimize improvements
The one-dimensional nonlinear solvers have been given a unified interface
scipy.optimize.root_scalar, similar to the scipy.optimize.root interface
for multi-dimensional solvers. scipy.optimize.root_scalar(f, bracket=[a ,b],
method="brenth") is equivalent to scipy.optimize.brenth(f, a ,b). If no
method is specified, an appropriate one will be selected based upon the
bracket and the number of derivatives available.
The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within
an enclosing interval has been added as scipy.optimize.toms748. This provides
guaranteed convergence to a root with convergence rate per function evaluation
of approximately 1.65 (for sufficiently well-behaved functions.)
differential_evolution now has the updating and workers keywords.
The first chooses between continuous updating of the best solution vector (the
default), or once per generation. Continuous updating can lead to faster
convergence. The workers keyword accepts an int or map-like callable,
and parallelises the solver (having the side effect of updating once per
generation). Supplying an int evaluates the trial solutions in N parallel
parts. Supplying a map-like callable allows other parallelisation approaches
(such as mpi4py, or joblib) to be used.
dual_annealing (and shgo below) is a powerful new general purpose
global optizimation (GO) algorithm. dual_annealing uses two annealing
processes to accelerate the convergence towards the global minimum of an
objective mathematical function. The first annealing process controls the
stochastic Markov chain searching and the second annealing process controls the
deterministic minimization. So, dual annealing is a hybrid method that takes
advantage of stochastic and local deterministic searching in an efficient way.
shgo (simplicial homology global optimization) is a similar algorithm
appropriate for solving black box and derivative free optimization (DFO)
problems. The algorithm generally converges to the global solution in finite
time. The convergence holds for non-linear inequality and
equality constraints. In addition to returning a global minimum, the
algorithm also returns any other global and local minima found after every
iteration. This makes it useful for exploring the solutions in a domain.
scipy.optimize.newton can now accept a scalar or an array
MINPACK usage is now thread-safe, such that MINPACK + callbacks may
be used on multiple threads.
scipy.signal improvements
Digital filter design functions now include a parameter to specify the sampling
rate. Previously, digital filters could only be specified using normalized
frequency, but different functions used different scales (e.g. 0 to 1 for
butter vs 0 to π for freqz), leading to errors and confusion. With
the fs parameter, ordinary frequencies can now be entered directly into
functions, with the normalization handled internally.
find_peaks and related functions no longer raise an exception if the
properties of a peak have unexpected values (e.g. a prominence of 0). A
PeakPropertyWarning is given instead.
The new keyword argument plateau_size was added to find_peaks.
plateau_size may be used to select peaks based on the length of the
flat top of a peak.
welch() and csd() methods in scipy.signal now support calculation
of a median average PSD, using average='mean' keyword
scipy.sparse improvements
The scipy.sparse.bsr_matrix.tocsr method is now implemented directly instead
of converting via COO format, and the scipy.sparse.bsr_matrix.tocsc method
is now also routed via CSR conversion instead of COO. The efficiency of both
conversions is now improved.
The issue where SuperLU or UMFPACK solvers crashed on matrices with
non-canonical format in scipy.sparse.linalg was fixed. The solver wrapper
canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK
solver.
The largest option of scipy.sparse.linalg.lobpcg() was fixed to have
a correct (and expected) behavior. The order of the eigenvalues was made
consistent with the ARPACK solver (eigs()), i.e. ascending for the
smallest eigenvalues, and descending for the largest eigenvalues.
The scipy.sparse.random function is now faster and also supports integer and
complex values by passing the appropriate value to the dtype argument.
scipy.spatial improvements
The function scipy.spatial.distance.jaccard was modified to return 0 instead
of np.nan when two all-zero vectors are compared.
Support for the Jensen Shannon distance, the square-root of the divergence, has
been added under scipy.spatial.distance.jensenshannon
An optional keyword was added to the function
scipy.spatial.cKDTree.query_ball_point() to sort or not sort the returned
indices. Not sorting the indices can speed up calls.
A new category of quaternion-based transformations are available in
scipy.spatial.transform, including spherical linear interpolation of
rotations (Slerp), conversions to and from quaternions, Euler angles,
and general rotation and inversion capabilities
(spatial.transform.Rotation), and uniform random sampling of 3D
rotations (spatial.transform.Rotation.random).
scipy.stats improvements
The Yeo-Johnson power transformation is now supported (yeojohnson,
yeojohnson_llf, yeojohnson_normmax, yeojohnson_normplot). Unlike
the Box-Cox transformation, the Yeo-Johnson transformation can accept negative
values.
Added a general method to sample random variates based on the density only, in
the new function rvs_ratio_uniforms.
The Yule-Simon distribution (yulesimon) was added -- this is a new
discrete probability distribution.
stats and mstats now have access to a new regression method,
siegelslopes, a robust linear regression algorithm
scipy.stats.gaussian_kde now has the ability to deal with weighted samples,
and should have a modest improvement in performance
Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for scipy.stats.levy_stable.
The Brunner-Munzel test is now available as brunnermunzel in stats
and mstats
scipy.linalg improvements
scipy.linalg.lapack now exposes the LAPACK routines using the Rectangular
Full Packed storage (RFP) for upper triangular, lower triangular, symmetric,
or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition
routines are now available as well.
Deprecated features
The functions hyp2f0, hyp1f2 and hyp3f0 in scipy.special have
been deprecated.
Backwards incompatible changes
LAPACK version 3.4.0 or later is now required. Building with Apple Accelerate is no longer supported.
The function scipy.linalg.subspace_angles(A, B) now gives correct
results for all angles. Before this, the function only returned
correct values for those angles which were greater than pi/4.
Support for the Bento build system has been removed. Bento has not been maintained for several years, and did not have good Python 3 or wheel support, hence it was time to remove it.
The required signature of scipy.optimize.lingprog method=simplex
callback function has changed. Before iteration begins, the simplex solver
first converts the problem into a standard form that does not, in general,
have the same variables or constraints
as the problem defined by the user. Previously, the simplex solver would pass a
user-specified callback function several separate arguments, such as the
current solution vector xk, corresponding to this standard form problem.
Unfortunately, the relationship between the standard form problem and the
user-defined problem was not documented, limiting the utility of the
information passed to the callback function.
In addition to numerous bug fix changes, the simplex solver now passes a
user-specified callback function a single OptimizeResult object containing
information that corresponds directly to the user-defined problem. In future
releases, this OptimizeResult object may be expanded to include additional
information, such as variables corresponding to the standard-form problem and
information concerning the relationship between the standard-form and
user-defined problems.
The implementation of scipy.sparse.random has changed, and this affects the
numerical values returned for both sparse.random and sparse.rand for
some matrix shapes and a given seed.
scipy.optimize.newton will no longer use Halley's method in cases where it
negatively impacts convergence
Other changes
Authors
- @endolith
- @luzpaz
- Hameer Abbasi +
- akahard2dj +
- Anton Akhmerov
- Joseph Albert
- alexthomas93 +
- ashish +
- atpage +
- Blair Azzopardi +
- Yoshiki Vázquez Baeza
- Bence Bagi +
- Christoph Baumgarten
- Lucas Bellomo +
- BH4 +
- Aditya Bharti
- Max Bolingbroke
- François Boulogne
- Ward Bradt +
- Matthew Brett
- Evgeni Burovski
- Rafał Byczek +
- Alfredo Canziani +
- CJ Carey
- Lucía Cheung +
- Poom Chiarawongse +
- Jeanne Choo +
- Robert Cimrman
- Graham Clenaghan +
- cynthia-rempel +
- Johannes Damp +
- Jaime Fernandez del Rio
- Dowon +
- emmi474 +
- Stefan Endres +
- Thomas Etherington +
- Alex Fikl +
- fo40225 +
- Joseph Fox-Rabinovitz
- Lars G
- Abhinav Gautam +
- Stiaan Gerber +
- C.A.M. Gerlach +
- Ralf Gommers
- Todd Goodall
- Lars Grueter +
- Sylvain Gubian +
- Matt Haberland
- David Hagen
- Will Handley +
- Charles Harris
- Ian Henriksen
- Thomas Hisch +
- Theodore Hu
- Michael Hudson-Doyle +
- Nicolas Hug +
- jakirkham +
- Jakob Jakobson +
- James +
- Jan Schlüter
- jeanpauphilet +
- josephmernst +
- Kai +
- Kai-Striega +
- kalash04 +
- Toshiki Kataoka +
- Konrad0 +
- Tom Krauss +
- Johannes Kulick
- Lars Grüter +
- Eric Larson
- Denis Laxalde
- Will Lee +
- Katrin Leinweber +
- Yin Li +
- P. L. Lim +
- Jesse Livezey +
- Duncan Macleod +
- MatthewFlamm +
- Nikolay Mayorov
- Mike McClurg +
- Christian Meyer +
- Mark Mikofski
- Naoto Mizuno +
- mohmmadd +
- Nathan Musoke
- Anju Geetha Nair +
- Andrew Nelson
- Ayappan P +
- Nick Papior
- Haesun Park +
- Ronny Pfannschmidt +
- pijyoi +
- Ilhan Polat
- Anthony Polloreno +
- Ted Pudlik
- puenka
- Eric Quintero
- Pradeep Reddy Raamana +
- Vyas Ramasubramani +
- Ramon Viñas +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro
- richardjgowers +
- Rob +
- robbystk +
- Lucas Roberts +
- rohan +
- Joaquin Derrac Rus +
- Josua Sassen +
- Bruce Sharpe +
- Max Shinn +
- Scott Sievert
- Sourav Singh
- Strahinja Lukić +
- Kai Striega +
- Shinya SUZUKI +
- Mike Toews +
- Piotr Uchwat
- Miguel de Val-Borro +
- Nicky van Foreest
- Paul van Mulbregt
- Gael Varoquaux
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Joshua Wharton +
- Bernhard M. Wiedemann +
- Eric Wieser
- Josh Wilson
- Tony Xiang +
- Roman Yurchak +
- Roy Zywina +
A total of 137 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.
- Python
Published by tylerjereddy over 7 years ago
scipy - SciPy 1.1.0
SciPy 1.1.0 is the culmination of 7 months of hard work. It contains
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.1.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This release has improved but not necessarily 100% compatibility with the PyPy Python implementation. For running on PyPy, PyPy 6.0+ and Numpy 1.15.0+ are required.
New features
scipy.integrate improvements
The argument tfirst has been added to the function
scipy.integrate.odeint. This allows odeint to use the same user
functions as scipy.integrate.solve_ivp and scipy.integrate.ode without
the need for wrapping them in a function that swaps the first two
arguments.
Error messages from quad() are now clearer.
scipy.linalg improvements
The function scipy.linalg.ldl has been added for factorization of indefinite symmetric/hermitian matrices into triangular and block diagonal matrices.
Python wrappers for LAPACK sygst, hegst added in
scipy.linalg.lapack.
Added scipy.linalg.null_space, scipy.linalg.cdf2rdf, scipy.linalg.rsf2csf.
scipy.misc improvements
An electrocardiogram has been added as an example dataset for a one-dimensional signal. It can be accessed through scipy.misc.electrocardiogram.
scipy.ndimage improvements
The routines scipy.ndimage.binary_opening, and scipy.ndimage.binary_closing now support masks and different border values.
scipy.optimize improvements
The method trust-constr has been added to scipy.optimize.minimize. The
method switches between two implementations depending on the problem
definition. For equality constrained problems it is an implementation of
a trust-region sequential quadratic programming solver and, when
inequality constraints are imposed, it switches to a trust-region
interior point method. Both methods are appropriate for large scale
problems. Quasi-Newton options BFGS and SR1 were implemented and can be
used to approximate second order derivatives for this new method. Also,
finite-differences can be used to approximate either first-order or
second-order derivatives.
Random-to-Best/1/bin and Random-to-Best/1/exp mutation strategies were
added to scipy.optimize.differential_evolution as randtobest1bin and
randtobest1exp, respectively. Note: These names were already in use
but implemented a different mutation strategy. See Backwards
incompatible changes, below. The
init keyword for the scipy.optimize.differential_evolution function
can now accept an array. This array allows the user to specify the
entire population.
Add an adaptive option to Nelder-Mead to use step parameters adapted
to the dimensionality of the problem.
Minor improvements in scipy.optimize.basinhopping.
scipy.signal improvements
Three new functions for peak finding in one-dimensional arrays were added. scipy.signal.find_peaks searches for peaks (local maxima) based on simple value comparison of neighbouring samples and returns those peaks whose properties match optionally specified conditions for their height, prominence, width, threshold and distance to each other. scipy.signal.peak_prominences and scipy.signal.peak_widths can directly calculate the prominences or widths of known peaks.
Added ZPK versions of frequency transformations: scipy.signal.bilinear_zpk, scipy.signal.lp2bp_zpk, scipy.signal.lp2bs_zpk, scipy.signal.lp2hp_zpk, scipy.signal.lp2lp_zpk.
Added scipy.signal.windows.dpss, scipy.signal.windows.general_cosine and scipy.signal.windows.general_hamming.
scipy.sparse improvements
Previously, the reshape method only worked on
scipy.sparse.lil_matrix, and in-place reshaping did not work on any
matrices. Both operations are now implemented for all matrices. Handling
of shapes has been made consistent with numpy.matrix throughout the
scipy.sparse module (shape can be a tuple or splatted, negative number
acts as placeholder, padding and unpadding dimensions of size 1 to
ensure length-2 shape).
scipy.special improvements
Added Owen's T function as scipy.special.owens_t.
Accuracy improvements in chndtr, digamma, gammaincinv, lambertw,
zetac.
scipy.stats improvements
The Moyal distribution has been added as scipy.stats.moyal.
Added the normal inverse Gaussian distribution as scipy.stats.norminvgauss.
Deprecated features
The iterative linear equation solvers in scipy.sparse.linalg had a
sub-optimal way of how absolute tolerance is considered. The default
behavior will be changed in a future Scipy release to a more standard
and less surprising one. To silence deprecation warnings, set the
atol= parameter explicitly.
scipy.signal.windows.slepian is deprecated, replaced by scipy.signal.windows.dpss.
The window functions in scipy.signal are now available in scipy.signal.windows. They will remain also available in the old location in the scipy.signal namespace in future Scipy versions. However, importing them from scipy.signal.windows is preferred, and new window functions will be added only there.
Indexing sparse matrices with floating-point numbers instead of integers is deprecated.
The function scipy.stats.itemfreq is deprecated.
Backwards incompatible changes
Previously, scipy.linalg.orth used a singular value cutoff value appropriate for double precision numbers also for single-precision input. The cutoff value is now tunable, and the default has been changed to depend on the input data precision.
In previous versions of Scipy, the randtobest1bin and randtobest1exp
mutation strategies in scipy.optimize.differential_evolution were
actually implemented using the Current-to-Best/1/bin and
Current-to-Best/1/exp strategies, respectively. These strategies were
renamed to currenttobest1bin and currenttobest1exp and the
implementations of randtobest1bin and randtobest1exp strategies were
corrected.
Functions in the ndimage module now always return their output array.
Before this most functions only returned the output array if it had been
allocated by the function, and would return None if it had been
provided by the user.
Distance metrics in scipy.spatial.distance now require non-negative weights.
scipy.special.loggamma returns now real-valued result when the input is real-valued.
Other changes
When building on Linux with GNU compilers, the .so Python extension
files now hide all symbols except those required by Python, which can
avoid problems when embedding the Python interpreter.
Authors
- Saurabh Agarwal +
- Diogo Aguiam +
- Joseph Albert +
- Gerrit Ansmann +
- Jean-François B +
- Vahan Babayan +
- Alessandro Pietro Bardelli
- Christoph Baumgarten +
- Felix Berkenkamp
- Lilian Besson +
- Aditya Bharti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Martin Ø. Christensen +
- Robert Cimrman
- Vicky Close +
- Peter Cock +
- Philip DeBoer
- Jaime Fernandez del Rio
- Dieter Werthmüller +
- Tom Donoghue +
- Matt Dzugan +
- Lars G +
- Jacques Gaudin +
- Andriy Gelman +
- Sean Gillies +
- Dezmond Goff
- Christoph Gohlke
- Ralf Gommers
- Uri Goren +
- Deepak Kumar Gouda +
- Douglas Lessa Graciosa +
- Matt Haberland
- David Hagen
- Charles Harris
- Jordan Heemskerk +
- Danny Hermes +
- Stephan Hoyer +
- Theodore Hu +
- Jean-François B. +
- Mads Jensen +
- Jon Haitz Legarreta Gorroño +
- Ben Jude +
- Noel Kippers +
- Julius Bier Kirkegaard +
- Maria Knorps +
- Mikkel Kristensen +
- Eric Larson
- Kasper Primdal Lauritzen +
- Denis Laxalde
- KangWon Lee +
- Jan Lehky +
- Jackie Leng +
- P.L. Lim +
- Nikolay Mayorov
- Mihai Capotă +
- Max Mikhaylov +
- Mark Mikofski +
- Jarrod Millman
- Raden Muhammad +
- Paul Nation
- Andrew Nelson
- Nico Schlömer
- Joel Nothman
- Kyle Oman +
- Egor Panfilov +
- Nick Papior
- Anubhav Patel +
- Oleksandr Pavlyk
- Ilhan Polat
- Robert Pollak +
- Anant Prakash +
- Aman Pratik
- Sean Quinn +
- Giftlin Rajaiah +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro +
- Antonio Horta Ribeiro
- Benjamin Rose +
- Fabian Rost
- Divakar Roy +
- Scott Sievert
- Leo Singer
- Sourav Singh
- Martino Sorbaro +
- Eric Stansifer +
- Martin Thoma
- Phil Tooley +
- Piotr Uchwat +
- Paul van Mulbregt
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Florian Weimer +
- Eric Wieser
- Josh Wilson
- Ted Ying +
- Evgeny Zhurko
- Zé Vinícius
- @Astrofysicus +
- @awakenting +
- @endolith
- @FormerPhysicist +
- @gaulinmp +
- @hugovk
- @ksemb +
- @kshitij12345 +
- @luzpaz +
- @NKrvavica +
- @rafalalgo +
- @samyak0210 +
- @soluwalana +
- @sudheerachary +
- @Tokixix +
- @tttthomasssss +
- @vkk800 +
- @xoviat
- @ziejcow +
A total of 122 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.
- Python
Published by pv about 8 years ago
scipy - Scipy 1.1.0rc1
SciPy 1.1.0 Release Notes
Note: Scipy 1.1.0 is not released yet!
SciPy 1.1.0 is the culmination of 7 months of hard work. It contains 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.1.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This release has improved but not necessarily 100% compatibility with the PyPy Python implementation. For running on PyPy, PyPy 6.0+ and Numpy 1.15.0+ are required.
New features
scipy.integrate improvements
The argument tfirst has been added to the function scipy.integrate.odeint. This allows odeint to use the same user functions as scipy.integrate.solve_ivp and scipy.integrate.ode without the need for wrapping them in a function that swaps the first two arguments.
Error messages from quad() are now clearer.
scipy.linalg improvements
The function scipy.linalg.ldl has been added for factorization of indefinite symmetric/hermitian matrices into triangular and block diagonal matrices.
Python wrappers for LAPACK sygst, hegst added in scipy.linalg.lapack.
Added scipy.linalg.null_space, scipy.linalg.cdf2rdf, scipy.linalg.rsf2csf.
scipy.misc improvements
An electrocardiogram has been added as an example dataset for a one-dimensional signal. It can be accessed through scipy.misc.electrocardiogram.
scipy.ndimage improvements
The routines scipy.ndimage.binary_opening, and scipy.ndimage.binary_closing now support masks and different border values.
scipy.optimize improvements
The method trust-constr has been added to scipy.optimize.minimize. The method switches between two implementations depending on the problem definition. For equality constrained problems it is an implementation of a trust-region sequential quadratic programming solver and, when inequality constraints are imposed, it switches to a trust-region interior point method. Both methods are appropriate for large scale
problems. Quasi-Newton options BFGS and SR1 were implemented and can be used to approximate second order derivatives for this new method. Also, finite-differences can be used to approximate either first-order or
second-order derivatives.
Random-to-Best/1/bin and Random-to-Best/1/exp mutation strategies were added to scipy.optimize.differential_evolution as randtobest1bin and randtobest1exp, respectively. Note: These names were already in use but implemented a different mutation strategy. See Backwards incompatible changes, below. The init keyword for the scipy.optimize.differential_evolution function can now accept an array. This array allows the user to specify the
entire population.
Add an adaptive option to Nelder-Mead to use step parameters adapted to the dimensionality of the problem.
Minor improvements in scipy.optimize.basinhopping.
scipy.signal improvements
Three new functions for peak finding in one-dimensional arrays were added. scipy.signal.find_peaks searches for peaks (local maxima) based on simple value comparison of neighbouring samples and returns those peaks whose properties match optionally specified conditions for their height, prominence, width, threshold and distance to each other. scipy.signal.peak_prominences and scipy.signal.peak_widths can directly calculate the prominences or widths of known peaks.
Added ZPK versions of frequency transformations: scipy.signal.bilinear_zpk, scipy.signal.lp2bp_zpk, scipy.signal.lp2bs_zpk, scipy.signal.lp2hp_zpk, scipy.signal.lp2lp_zpk.
Added scipy.signal.windows.dpss, scipy.signal.windows.general_cosine and scipy.signal.windows.general_hamming.
scipy.sparse improvements
An in-place resize method has been added to all sparse matrix formats, which was only available for scipy.sparse.dok_matrix in previous releases.
scipy.special improvements
Added Owen's T function as scipy.special.owens_t.
Accuracy improvements in chndtr, digamma, gammaincinv, lambertw, zetac.
scipy.stats improvements
The Moyal distribution has been added as scipy.stats.moyal.
Added the normal inverse Gaussian distribution as scipy.stats.norminvgauss.
Deprecated features
The iterative linear equation solvers in scipy.sparse.linalg had a sub-optimal way of how absolute tolerance is considered. The default behavior will be changed in a future Scipy release to a more standard and less surprising one. To silence deprecation warnings, set the atol= parameter explicitly.
scipy.signal.windows.slepian is deprecated, replaced by scipy.signal.windows.dpss.
The window functions in scipy.signal are now available in scipy.signal.windows. They will remain also available in the old location in the scipy.signal namespace in future Scipy versions. However, importing them from scipy.signal.windows is preferred, and new window functions will be added only there.
Indexing sparse matrices with floating-point numbers instead of integers is deprecated.
The function scipy.stats.itemfreq is deprecated.
Backwards incompatible changes
Previously, scipy.linalg.orth used a singular value cutoff value appropriate for double precision numbers also for single-precision input. The cutoff value is now tunable, and the default has been changed to depend on the input data precision.
In previous versions of Scipy, the randtobest1bin and randtobest1exp mutation strategies in scipy.optimize.differential_evolution were actually implemented using the Current-to-Best/1/bin and Current-to-Best/1/exp strategies, respectively. These strategies were renamed to currenttobest1bin and currenttobest1exp and the implementations of randtobest1bin and randtobest1exp strategies were corrected.
Functions in the ndimage module now always return their output array. Before this most functions only returned the output array if it had been allocated by the function, and would return None if it had been provided by the user.
Distance metrics in scipy.spatial.distance now require non-negative weights.
scipy.special.loggamma returns now real-valued result when the input is real-valued.
Other changes
When building on Linux with GNU compilers, the .so Python extension files now hide all symbols except those required by Python, which can avoid problems when embedding the Python interpreter.
Authors
- Saurabh Agarwal +
- Diogo Aguiam +
- Joseph Albert +
- Gerrit Ansmann +
- Astrofysicus +
- Jean-François B +
- Vahan Babayan +
- Alessandro Pietro Bardelli
- Christoph Baumgarten +
- Felix Berkenkamp
- Lilian Besson +
- Aditya Bharti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Martin Ø. Christensen +
- Robert Cimrman
- Vicky Close +
- Peter Cock +
- Philip DeBoer
- Jaime Fernandez del Rio
- Dieter Werthmüller +
- Tom Donoghue +
- Matt Dzugan +
- Lars G +
- Jacques Gaudin +
- Andriy Gelman +
- Sean Gillies +
- Dezmond Goff
- Christoph Gohlke
- Ralf Gommers
- Uri Goren +
- Deepak Kumar Gouda +
- Douglas Lessa Graciosa +
- Matt Haberland
- David Hagen
- Charles Harris
- Jordan Heemskerk +
- Danny Hermes +
- Stephan Hoyer +
- Theodore Hu +
- Jean-François B. +
- Mads Jensen +
- Jon Haitz Legarreta Gorroño +
- Ben Jude +
- Noel Kippers +
- Julius Bier Kirkegaard +
- Maria Knorps +
- Mikkel Kristensen +
- Eric Larson
- Kasper Primdal Lauritzen +
- Denis Laxalde
- KangWon Lee +
- Jan Lehky +
- Jackie Leng +
- P.L. Lim +
- Nikolay Mayorov
- Mihai Capotă +
- Max Mikhaylov +
- Mark Mikofski +
- Jarrod Millman
- Raden Muhammad +
- Paul Nation
- Andrew Nelson
- Nico Schlömer
- Joel Nothman
- Kyle Oman +
- Egor Panfilov +
- Nick Papior
- Anubhav Patel +
- Oleksandr Pavlyk
- Ilhan Polat
- Robert Pollak +
- Anant Prakash +
- Aman Pratik
- Sean Quinn +
- Giftlin Rajaiah +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro +
- Antonio Horta Ribeiro
- Benjamin Rose +
- Fabian Rost
- Divakar Roy +
- Scott Sievert
- Leo Singer
- Sourav Singh
- Martino Sorbaro +
- Eric Stansifer +
- Martin Thoma
- Phil Tooley +
- Piotr Uchwat +
- Paul van Mulbregt
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Florian Weimer +
- Eric Wieser
- Josh Wilson
- Ted Ying +
- Evgeny Zhurko
- Zé Vinícius
- @awakenting +
- @endolith
- @FormerPhysicist +
- @gaulinmp +
- @hugovk
- @ksemb +
- @kshitij12345 +
- @luzpaz +
- @NKrvavica +
- @rafalalgo +
- @samyak0210 +
- @soluwalana +
- @sudheerachary +
- @Tokixix +
- @tttthomasssss +
- @vkk800 +
- @xoviat
- @ziejcow +
A total of 122 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.
- Python
Published by pv about 8 years ago
scipy - SciPy 1.0.1
SciPy 1.0.1 is a bug-fix release with no new features compared to 1.0.0.
Probably the most important change is a fix for an incompatibility between
SciPy 1.0.0 and numpy.f2py in the NumPy master branch.
- Python
Published by rgommers about 8 years ago
scipy - SciPy 1.0.0
We are extremely pleased to announce the release of SciPy 1.0, 16 years after version 0.1 saw the light of day. It has been a long, productive journey to get here, and we anticipate many more exciting new features and releases in the future.
Why 1.0 now?
A version number should reflect the maturity of a project - and SciPy was a mature and stable library that is heavily used in production settings for a long time already. From that perspective, the 1.0 version number is long overdue.
Some key project goals, both technical (e.g. Windows wheels and continuous integration) and organisational (a governance structure, code of conduct and a roadmap), have been achieved recently.
Many of us are a bit perfectionist, and therefore are reluctant to call something "1.0" because it may imply that it's "finished" or "we are 100% happy with it". This is normal for many open source projects, however that doesn't make it right. We acknowledge to ourselves that it's not perfect, and there are some dusty corners left (that will probably always be the case). Despite that, SciPy is extremely useful to its users, on average has high quality code and documentation, and gives the stability and backwards compatibility guarantees that a 1.0 label imply.
Some history and perspectives
- 2001: the first SciPy release
- 2005: transition to NumPy
- 2007: creation of scikits
- 2008: scipy.spatial module and first Cython code added
- 2010: moving to a 6-monthly release cycle
- 2011: SciPy development moves to GitHub
- 2011: Python 3 support
- 2012: adding a sparse graph module and unified optimization interface
- 2012: removal of scipy.maxentropy
- 2013: continuous integration with TravisCI
- 2015: adding Cython interface for BLAS/LAPACK and a benchmark suite
- 2017: adding a unified C API with scipy.LowLevelCallable; removal of scipy.weave
- 2017: SciPy 1.0 release
Pauli Virtanen is SciPy's Benevolent Dictator For Life (BDFL). He says:
Truthfully speaking, we could have released a SciPy 1.0 a long time ago, so I'm happy we do it now at long last. The project has a long history, and during the years it has matured also as a software project. I believe it has well proved its merit to warrant a version number starting with unity.
Since its conception 15+ years ago, SciPy has largely been written by and for scientists, to provide a box of basic tools that they need. Over time, the set of people active in its development has undergone some rotation, and we have evolved towards a somewhat more systematic approach to development. Regardless, this underlying drive has stayed the same, and I think it will also continue propelling the project forward in future. This is all good, since not long after 1.0 comes 1.1.
Travis Oliphant is one of SciPy's creators. He says:
I'm honored to write a note of congratulations to the SciPy developers and the entire SciPy community for the release of SciPy 1.0. This release represents a dream of many that has been patiently pursued by a stalwart group of pioneers for nearly 2 decades. Efforts have been broad and consistent over that time from many hundreds of people. From initial discussions to efforts coding and packaging to documentation efforts to extensive conference and community building, the SciPy effort has been a global phenomenon that it has been a privilege to participate in.
The idea of SciPy was already in multiple people’s minds in 1997 when I first joined the Python community as a young graduate student who had just fallen in love with the expressibility and extensibility of Python. The internet was just starting to bringing together like-minded mathematicians and scientists in nascent electronically-connected communities. In 1998, there was a concerted discussion on the matrix-SIG, python mailing list with people like Paul Barrett, Joe Harrington, Perry Greenfield, Paul Dubois, Konrad Hinsen, David Ascher, and others. This discussion encouraged me in 1998 and 1999 to procrastinate my PhD and spend a lot of time writing extension modules to Python that mostly wrapped battle-tested Fortran and C-code making it available to the Python user. This work attracted the help of others like Robert Kern, Pearu Peterson and Eric Jones who joined their efforts with mine in 2000 so that by 2001, the first SciPy release was ready. This was long before Github simplified collaboration and input from others and the "patch" command and email was how you helped a project improve.
Since that time, hundreds of people have spent an enormous amount of time improving the SciPy library and the community surrounding this library has dramatically grown. I stopped being able to participate actively in developing the SciPy library around 2010. Fortunately, at that time, Pauli Virtanen and Ralf Gommers picked up the pace of development supported by dozens of other key contributors such as David Cournapeau, Evgeni Burovski, Josef Perktold, and Warren Weckesser. While I have only been able to admire the development of SciPy from a distance for the past 7 years, I have never lost my love of the project and the concept of community-driven development. I remain driven even now by a desire to help sustain the development of not only the SciPy library but many other affiliated and related open-source projects. I am extremely pleased that SciPy is in the hands of a world-wide community of talented developers who will ensure that SciPy remains an example of how grass-roots, community-driven development can succeed.
Fernando Perez offers a wider community perspective:
The existence of a nascent Scipy library, and the incredible --if tiny by today's standards-- community surrounding it is what drew me into the scientific Python world while still a physics graduate student in 2001. Today, I am awed when I see these tools power everything from high school education to the research that led to the 2017 Nobel Prize in physics.
Don't be fooled by the 1.0 number: this project is a mature cornerstone of the modern scientific computing ecosystem. I am grateful for the many who have made it possible, and hope to be able to contribute again to it in the future. My sincere congratulations to the whole team!
Highlights of this release
Some of the highlights of this release are:
- Major build improvements. Windows wheels are available on PyPI for the first time, and continuous integration has been set up on Windows and OS X in addition to Linux.
- A set of new ODE solvers and a unified interface to them
(
scipy.integrate.solve_ivp). - Two new trust region optimizers and a new linear programming method, with
improved performance compared to what
scipy.optimizeoffered previously. - Many new BLAS and LAPACK functions were wrapped. The BLAS wrappers are now complete.
Upgrading and compatibility
There have been a number of deprecations and API changes in this release, which
are documented below. 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).
This release requires Python 2.7 or >=3.4 and NumPy 1.8.2 or greater.
This is also the last release to support LAPACK 3.1.x - 3.3.x. Moving the lowest supported LAPACK version to >3.2.x was long blocked by Apple Accelerate providing the LAPACK 3.2.1 API. We have decided that it's time to either drop Accelerate or, if there is enough interest, provide shims for functions added in more recent LAPACK versions so it can still be used.
New features
scipy.cluster improvements
scipy.cluster.hierarchy.optimal_leaf_ordering, a function to reorder a
linkage matrix to minimize distances between adjacent leaves, was added.
scipy.fftpack improvements
N-dimensional versions of the discrete sine and cosine transforms and their
inverses were added as dctn, idctn, dstn and idstn.
scipy.integrate improvements
A set of new ODE solvers have been added to scipy.integrate. The convenience
function scipy.integrate.solve_ivp allows uniform access to all solvers.
The individual solvers (RK23, RK45, Radau, BDF and LSODA)
can also be used directly.
scipy.linalg improvements
The BLAS wrappers in scipy.linalg.blas have been completed. Added functions
are *gbmv, *hbmv, *hpmv, *hpr, *hpr2, *spmv, *spr,
*tbmv, *tbsv, *tpmv, *tpsv, *trsm, *trsv, *sbmv,
*spr2,
Wrappers for the LAPACK functions *gels, *stev, *sytrd, *hetrd,
*sytf2, *hetrf, *sytrf, *sycon, *hecon, *gglse,
*stebz, *stemr, *sterf, and *stein have been added.
The function scipy.linalg.subspace_angles has been added to compute the
subspace angles between two matrices.
The function scipy.linalg.clarkson_woodruff_transform has been added.
It finds low-rank matrix approximation via the Clarkson-Woodruff Transform.
The functions scipy.linalg.eigh_tridiagonal and
scipy.linalg.eigvalsh_tridiagonal, which find the eigenvalues and
eigenvectors of tridiagonal hermitian/symmetric matrices, were added.
scipy.ndimage improvements
Support for homogeneous coordinate transforms has been added to
scipy.ndimage.affine_transform.
The ndimage C code underwent a significant refactoring, and is now
a lot easier to understand and maintain.
scipy.optimize improvements
The methods trust-region-exact and trust-krylov have been added to the
function scipy.optimize.minimize. These new trust-region methods solve the
subproblem with higher accuracy at the cost of more Hessian factorizations
(compared to dogleg) or more matrix vector products (compared to ncg) but
usually require less nonlinear iterations and are able to deal with indefinite
Hessians. They seem very competitive against the other Newton methods
implemented in scipy.
scipy.optimize.linprog gained an interior point method. Its performance is
superior (both in accuracy and speed) to the older simplex method.
scipy.signal improvements
An argument fs (sampling frequency) was added to the following functions:
firwin, firwin2, firls, and remez. This makes these functions
consistent with many other functions in scipy.signal in which the sampling
frequency can be specified.
scipy.signal.freqz has been sped up significantly for FIR filters.
scipy.sparse improvements
Iterating over and slicing of CSC and CSR matrices is now faster by up to ~35%.
The tocsr method of COO matrices is now several times faster.
The diagonal method of sparse matrices now takes a parameter, indicating
which diagonal to return.
scipy.sparse.linalg improvements
A new iterative solver for large-scale nonsymmetric sparse linear systems,
scipy.sparse.linalg.gcrotmk, was added. It implements GCROT(m,k), a
flexible variant of GCROT.
scipy.sparse.linalg.lsmr now accepts an initial guess, yielding potentially
faster convergence.
SuperLU was updated to version 5.2.1.
scipy.spatial improvements
Many distance metrics in scipy.spatial.distance gained support for weights.
The signatures of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist were changed to *args, **kwargs in order to
support a wider range of metrics (e.g. string-based metrics that need extra
keywords). Also, an optional out parameter was added to pdist and
cdist allowing the user to specify where the resulting distance matrix is
to be stored
scipy.stats improvements
The methods cdf and logcdf were added to
scipy.stats.multivariate_normal, providing the cumulative distribution
function of the multivariate normal distribution.
New statistical distance functions were added, namely
scipy.stats.wasserstein_distance for the first Wasserstein distance and
scipy.stats.energy_distance for the energy distance.
Deprecated features
The following functions in scipy.misc are deprecated: bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow and toimage. Most of those functions have unexpected
behavior (like rescaling and type casting image data without the user asking
for that). Other functions simply have better alternatives.
scipy.interpolate.interpolate_wrapper and all functions in that submodule
are deprecated. This was a never finished set of wrapper functions which is
not relevant anymore.
The fillvalue of scipy.signal.convolve2d will be cast directly to the
dtypes of the input arrays in the future and checked that it is a scalar or
an array with a single element.
scipy.spatial.distance.matching is deprecated. It is an alias of
scipy.spatial.distance.hamming, which should be used instead.
Implementation of scipy.spatial.distance.wminkowski was based on a wrong
interpretation of the metric definition. In scipy 1.0 it has been just
deprecated in the documentation to keep retro-compatibility but is recommended
to use the new version of scipy.spatial.distance.minkowski that implements
the correct behaviour.
Positional arguments of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist should be replaced with their keyword version.
Backwards incompatible changes
The following deprecated functions have been removed from scipy.stats:
betai, chisqprob, f_value, histogram, histogram2,
pdf_fromgamma, signaltonoise, square_of_sums, ss and
threshold.
The following deprecated functions have been removed from scipy.stats.mstats:
betai, f_value_wilks_lambda, signaltonoise and threshold.
The deprecated a and reta keywords have been removed from
scipy.stats.shapiro.
The deprecated functions sparse.csgraph.cs_graph_components and
sparse.linalg.symeig have been removed from scipy.sparse.
The following deprecated keywords have been removed in scipy.sparse.linalg:
drop_tol from splu, and xtype from bicg, bicgstab, cg,
cgs, gmres, qmr and minres.
The deprecated functions expm2 and expm3 have been removed from
scipy.linalg. The deprecated keyword q was removed from
scipy.linalg.expm. And the deprecated submodule linalg.calc_lwork was
removed.
The deprecated functions C2K, K2C, F2C, C2F, F2K and
K2F have been removed from scipy.constants.
The deprecated ppform class was removed from scipy.interpolate.
The deprecated keyword iprint was removed from scipy.optimize.fmin_cobyla.
The default value for the zero_phase keyword of scipy.signal.decimate
has been changed to True.
The kmeans and kmeans2 functions in scipy.cluster.vq changed the
method used for random initialization, so using a fixed random seed will
not necessarily produce the same results as in previous versions.
scipy.special.gammaln does not accept complex arguments anymore.
The deprecated functions sph_jn, sph_yn, sph_jnyn, sph_in,
sph_kn, and sph_inkn have been removed. Users should instead use
the functions spherical_jn, spherical_yn, spherical_in, and
spherical_kn. Be aware that the new functions have different
signatures.
The cross-class properties of scipy.signal.lti systems have been removed.
The following properties/setters have been removed:
Name - (accessing/setting has been removed) - (setting has been removed)
- StateSpace - (
num,den,gain) - (zeros,poles) - TransferFunction (
A,B,C,D,gain) - (zeros,poles) - ZerosPolesGain (
A,B,C,D,num,den) - ()
signal.freqz(b, a) with b or a >1-D raises a ValueError. This
was a corner case for which it was unclear that the behavior was well-defined.
The method var of scipy.stats.dirichlet now returns a scalar rather than
an ndarray when the length of alpha is 1.
Other changes
SciPy now has a formal governance structure. It consists of a BDFL (Pauli
Virtanen) and a Steering Committee. See the governance document
<https://github.com/scipy/scipy/blob/master/doc/source/dev/governance/governance.rst>_
for details.
It is now possible to build SciPy on Windows with MSVC + gfortran! Continuous integration has been set up for this build configuration on Appveyor, building against OpenBLAS.
Continuous integration for OS X has been set up on TravisCI.
The SciPy test suite has been migrated from nose to pytest.
scipy/_distributor_init.py was added to allow redistributors of SciPy to
add custom code that needs to run when importing SciPy (e.g. checks for
hardware, DLL search paths, etc.).
Support for PEP 518 (specifying build system requirements) was added - see
pyproject.toml in the root of the SciPy repository.
In order to have consistent function names, the function
scipy.linalg.solve_lyapunov is renamed to
scipy.linalg.solve_continuous_lyapunov. The old name is kept for
backwards-compatibility.
Authors
- @arcady +
- @xoviat +
- Anton Akhmerov
- Dominic Antonacci +
- Alessandro Pietro Bardelli
- Ved Basu +
- Michael James Bedford +
- Ray Bell +
- Juan M. Bello-Rivas +
- Sebastian Berg
- Felix Berkenkamp
- Jyotirmoy Bhattacharya +
- Matthew Brett
- Jonathan Bright
- Bruno Jiménez +
- Evgeni Burovski
- Patrick Callier
- Mark Campanelli +
- CJ Carey
- Robert Cimrman
- Adam Cox +
- Michael Danilov +
- David Haberthür +
- Andras Deak +
- Philip DeBoer
- Anne-Sylvie Deutsch
- Cathy Douglass +
- Dominic Else +
- Guo Fei +
- Roman Feldbauer +
- Yu Feng
- Jaime Fernandez del Rio
- Orestis Floros +
- David Freese +
- Adam Geitgey +
- James Gerity +
- Dezmond Goff +
- Christoph Gohlke
- Ralf Gommers
- Dirk Gorissen +
- Matt Haberland +
- David Hagen +
- Charles Harris
- Lam Yuen Hei +
- Jean Helie +
- Gaute Hope +
- Guillaume Horel +
- Franziska Horn +
- Yevhenii Hyzyla +
- Vladislav Iakovlev +
- Marvin Kastner +
- Mher Kazandjian
- Thomas Keck
- Adam Kurkiewicz +
- Ronan Lamy +
- J.L. Lanfranchi +
- Eric Larson
- Denis Laxalde
- Gregory R. Lee
- Felix Lenders +
- Evan Limanto
- Julian Lukwata +
- François Magimel
- Syrtis Major +
- Charles Masson +
- Nikolay Mayorov
- Tobias Megies
- Markus Meister +
- Roman Mirochnik +
- Jordi Montes +
- Nathan Musoke +
- Andrew Nelson
- M.J. Nichol
- Juan Nunez-Iglesias
- Arno Onken +
- Nick Papior +
- Dima Pasechnik +
- Ashwin Pathak +
- Oleksandr Pavlyk +
- Stefan Peterson
- Ilhan Polat
- Andrey Portnoy +
- Ravi Kumar Prasad +
- Aman Pratik
- Eric Quintero
- Vedant Rathore +
- Tyler Reddy
- Joscha Reimer
- Philipp Rentzsch +
- Antonio Horta Ribeiro
- Ned Richards +
- Kevin Rose +
- Benoit Rostykus +
- Matt Ruffalo +
- Eli Sadoff +
- Pim Schellart
- Nico Schlömer +
- Klaus Sembritzki +
- Nikolay Shebanov +
- Jonathan Tammo Siebert
- Scott Sievert
- Max Silbiger +
- Mandeep Singh +
- Michael Stewart +
- Jonathan Sutton +
- Deep Tavker +
- Martin Thoma
- James Tocknell +
- Aleksandar Trifunovic +
- Paul van Mulbregt +
- Jacob Vanderplas
- Aditya Vijaykumar
- Pauli Virtanen
- James Webber
- Warren Weckesser
- Eric Wieser +
- Josh Wilson
- Zhiqing Xiao +
- Evgeny Zhurko
- Nikolay Zinov +
- Zé Vinícius +
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.
- Python
Published by rgommers over 8 years ago
scipy - SciPy 1.0.0rc2
SciPy 1.0.0 Release Notes
.. note:: Scipy 1.0.0 is not released yet!
.. contents::
SciPy 1.0.0 is the culmination of 8 months of hard work. It contains
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.0.x branch, and on adding new features on the
master branch.
Some of the highlights of this release are:
- Major build improvements. Windows wheels are available on PyPI for the first time, and continuous integration has been set up on Windows and OS X in addition to Linux.
- A set of new ODE solvers and a unified interface to them
(
scipy.integrate.solve_ivp). - Two new trust region optimizers and a new linear programming method, with
improved performance compared to what
scipy.optimizeoffered previously. - Many new BLAS and LAPACK functions were wrapped. The BLAS wrappers are now complete.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This is also the last release to support LAPACK 3.1.x - 3.3.x. Moving the lowest supported LAPACK version to >3.2.x was long blocked by Apple Accelerate providing the LAPACK 3.2.1 API. We have decided that it's time to either drop Accelerate or, if there is enough interest, provide shims for functions added in more recent LAPACK versions so it can still be used.
New features
scipy.cluster improvements
scipy.cluster.hierarchy.optimal_leaf_ordering, a function to reorder a
linkage matrix to minimize distances between adjacent leaves, was added.
scipy.fftpack improvements
N-dimensional versions of the discrete sine and cosine transforms and their
inverses were added as dctn, idctn, dstn and idstn.
scipy.integrate improvements
A set of new ODE solvers have been added to scipy.integrate. The convenience
function scipy.integrate.solve_ivp allows uniform access to all solvers.
The individual solvers (RK23, RK45, Radau, BDF and LSODA)
can also be used directly.
scipy.linalg improvements
The BLAS wrappers in scipy.linalg.blas have been completed. Added functions
are *gbmv, *hbmv, *hpmv, *hpr, *hpr2, *spmv, *spr,
*tbmv, *tbsv, *tpmv, *tpsv, *trsm, *trsv, *sbmv,
*spr2,
Wrappers for the LAPACK functions *gels, *stev, *sytrd, *hetrd,
*sytf2, *hetrf, *sytrf, *sycon, *hecon, *gglse,
*stebz, *stemr, *sterf, and *stein have been added.
The function scipy.linalg.subspace_angles has been added to compute the
subspace angles between two matrices.
The function scipy.linalg.clarkson_woodruff_transform has been added.
It finds low-rank matrix approximation via the Clarkson-Woodruff Transform.
The functions scipy.linalg.eigh_tridiagonal and
scipy.linalg.eigvalsh_tridiagonal, which find the eigenvalues and
eigenvectors of tridiagonal hermitian/symmetric matrices, were added.
scipy.ndimage improvements
Support for homogeneous coordinate transforms has been added to
scipy.ndimage.affine_transform.
The ndimage C code underwent a significant refactoring, and is now
a lot easier to understand and maintain.
scipy.optimize improvements
The methods trust-region-exact and trust-krylov have been added to the
function scipy.optimize.minimize. These new trust-region methods solve the
subproblem with higher accuracy at the cost of more Hessian factorizations
(compared to dogleg) or more matrix vector products (compared to ncg) but
usually require less nonlinear iterations and are able to deal with indefinite
Hessians. They seem very competitive against the other Newton methods
implemented in scipy.
scipy.optimize.linprog gained an interior point method. Its performance is
superior (both in accuracy and speed) to the older simplex method.
scipy.signal improvements
An argument fs (sampling frequency) was added to the following functions:
firwin, firwin2, firls, and remez. This makes these functions
consistent with many other functions in scipy.signal in which the sampling
frequency can be specified.
scipy.signal.freqz has been sped up significantly for FIR filters.
scipy.sparse improvements
Iterating over and slicing of CSC and CSR matrices is now faster by up to ~35%.
The tocsr method of COO matrices is now several times faster.
The diagonal method of sparse matrices now takes a parameter, indicating
which diagonal to return.
scipy.sparse.linalg improvements
A new iterative solver for large-scale nonsymmetric sparse linear systems,
scipy.sparse.linalg.gcrotmk, was added. It implements GCROT(m,k), a
flexible variant of GCROT.
scipy.sparse.linalg.lsmr now accepts an initial guess, yielding potentially
faster convergence.
SuperLU was updated to version 5.2.1.
scipy.spatial improvements
Many distance metrics in scipy.spatial.distance gained support for weights.
The signatures of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist were changed to *args, **kwargs in order to
support a wider range of metrics (e.g. string-based metrics that need extra
keywords). Also, an optional out parameter was added to pdist and
cdist allowing the user to specify where the resulting distance matrix is
to be stored
scipy.stats improvements
The methods cdf and logcdf were added to
scipy.stats.multivariate_normal, providing the cumulative distribution
function of the multivariate normal distribution.
New statistical distance functions were added, namely
scipy.stats.wasserstein_distance for the first Wasserstein distance and
scipy.stats.energy_distance for the energy distance.
Deprecated features
The following functions in scipy.misc are deprecated: bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow and toimage. Most of those functions have unexpected
behavior (like rescaling and type casting image data without the user asking
for that). Other functions simply have better alternatives.
scipy.interpolate.interpolate_wrapper and all functions in that submodule
are deprecated. This was a never finished set of wrapper functions which is
not relevant anymore.
The fillvalue of scipy.signal.convolve2d will be cast directly to the
dtypes of the input arrays in the future and checked that it is a scalar or
an array with a single element.
scipy.spatial.distance.matching is deprecated. It is an alias of
scipy.spatial.distance.hamming, which should be used instead.
Implementation of scipy.spatial.distance.wminkowski was based on a wrong
interpretation of the metric definition. In scipy 1.0 it has been just
deprecated in the documentation to keep retro-compatibility but is recommended
to use the new version of scipy.spatial.distance.minkowski that implements
the correct behaviour.
Positional arguments of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist should be replaced with their keyword version.
Backwards incompatible changes
The following deprecated functions have been removed from scipy.stats:
betai, chisqprob, f_value, histogram, histogram2,
pdf_fromgamma, signaltonoise, square_of_sums, ss and
threshold.
The following deprecated functions have been removed from scipy.stats.mstats:
betai, f_value_wilks_lambda, signaltonoise and threshold.
The deprecated a and reta keywords have been removed from
scipy.stats.shapiro.
The deprecated functions sparse.csgraph.cs_graph_components and
sparse.linalg.symeig have been removed from scipy.sparse.
The following deprecated keywords have been removed in scipy.sparse.linalg:
drop_tol from splu, and xtype from bicg, bicgstab, cg,
cgs, gmres, qmr and minres.
The deprecated functions expm2 and expm3 have been removed from
scipy.linalg. The deprecated keyword q was removed from
scipy.linalg.expm. And the deprecated submodule linalg.calc_lwork was
removed.
The deprecated functions C2K, K2C, F2C, C2F, F2K and
K2F have been removed from scipy.constants.
The deprecated ppform class was removed from scipy.interpolate.
The deprecated keyword iprint was removed from scipy.optimize.fmin_cobyla.
The default value for the zero_phase keyword of scipy.signal.decimate
has been changed to True.
The kmeans and kmeans2 functions in scipy.cluster.vq changed the
method used for random initialization, so using a fixed random seed will
not necessarily produce the same results as in previous versions.
scipy.special.gammaln does not accept complex arguments anymore.
The deprecated functions sph_jn, sph_yn, sph_jnyn, sph_in,
sph_kn, and sph_inkn have been removed. Users should instead use
the functions spherical_jn, spherical_yn, spherical_in, and
spherical_kn. Be aware that the new functions have different
signatures.
The cross-class properties of scipy.signal.lti systems have been removed.
The following properties/setters have been removed:
Name - (accessing/setting has been removed) - (setting has been removed)
- StateSpace - (
num,den,gain) - (zeros,poles) - TransferFunction (
A,B,C,D,gain) - (zeros,poles) - ZerosPolesGain (
A,B,C,D,num,den) - ()
signal.freqz(b, a) with b or a >1-D raises a ValueError. This
was a corner case for which it was unclear that the behavior was well-defined.
The method var of scipy.stats.dirichlet now returns a scalar rather than
an ndarray when the length of alpha is 1.
Other changes
SciPy now has a formal governance structure. It consists of a BDFL (Pauli
Virtanen) and a Steering Committee. See the governance document
<https://github.com/scipy/scipy/blob/master/doc/source/dev/governance/governance.rst>_
for details.
It is now possible to build SciPy on Windows with MSVC + gfortran! Continuous integration has been set up for this build configuration on Appveyor, building against OpenBLAS.
Continuous integration for OS X has been set up on TravisCI.
The SciPy test suite has been migrated from nose to pytest.
scipy/_distributor_init.py was added to allow redistributors of SciPy to
add custom code that needs to run when importing SciPy (e.g. checks for
hardware, DLL search paths, etc.).
Support for PEP 518 (specifying build system requirements) was added - see
pyproject.toml in the root of the SciPy repository.
In order to have consistent function names, the function
scipy.linalg.solve_lyapunov is renamed to
scipy.linalg.solve_continuous_lyapunov. The old name is kept for
backwards-compatibility.
Authors
- @arcady +
- @xoviat +
- Anton Akhmerov
- Dominic Antonacci +
- Alessandro Pietro Bardelli
- Ved Basu +
- Michael James Bedford +
- Ray Bell +
- Juan M. Bello-Rivas +
- Sebastian Berg
- Felix Berkenkamp
- Jyotirmoy Bhattacharya +
- Matthew Brett
- Jonathan Bright
- Bruno Jiménez +
- Evgeni Burovski
- Patrick Callier
- Mark Campanelli +
- CJ Carey
- Robert Cimrman
- Adam Cox +
- Michael Danilov +
- David Haberthür +
- Andras Deak +
- Philip DeBoer
- Anne-Sylvie Deutsch
- Cathy Douglass +
- Dominic Else +
- Guo Fei +
- Roman Feldbauer +
- Yu Feng
- Jaime Fernandez del Rio
- Orestis Floros +
- David Freese +
- Adam Geitgey +
- James Gerity +
- Dezmond Goff +
- Christoph Gohlke
- Ralf Gommers
- Dirk Gorissen +
- Matt Haberland +
- David Hagen +
- Charles Harris
- Lam Yuen Hei +
- Jean Helie +
- Gaute Hope +
- Guillaume Horel +
- Franziska Horn +
- Yevhenii Hyzyla +
- Vladislav Iakovlev +
- Marvin Kastner +
- Mher Kazandjian
- Thomas Keck
- Adam Kurkiewicz +
- Ronan Lamy +
- J.L. Lanfranchi +
- Eric Larson
- Denis Laxalde
- Gregory R. Lee
- Felix Lenders +
- Evan Limanto
- Julian Lukwata +
- François Magimel
- Syrtis Major +
- Charles Masson +
- Nikolay Mayorov
- Tobias Megies
- Markus Meister +
- Roman Mirochnik +
- Jordi Montes +
- Nathan Musoke +
- Andrew Nelson
- M.J. Nichol
- Juan Nunez-Iglesias
- Arno Onken +
- Nick Papior +
- Dima Pasechnik +
- Ashwin Pathak +
- Oleksandr Pavlyk +
- Stefan Peterson
- Ilhan Polat
- Andrey Portnoy +
- Ravi Kumar Prasad +
- Aman Pratik
- Eric Quintero
- Vedant Rathore +
- Tyler Reddy
- Joscha Reimer
- Philipp Rentzsch +
- Antonio Horta Ribeiro
- Ned Richards +
- Kevin Rose +
- Benoit Rostykus +
- Matt Ruffalo +
- Eli Sadoff +
- Pim Schellart
- Nico Schlömer +
- Klaus Sembritzki +
- Nikolay Shebanov +
- Jonathan Tammo Siebert
- Scott Sievert
- Max Silbiger +
- Mandeep Singh +
- Michael Stewart +
- Jonathan Sutton +
- Deep Tavker +
- Martin Thoma
- James Tocknell +
- Aleksandar Trifunovic +
- Paul van Mulbregt +
- Jacob Vanderplas
- Aditya Vijaykumar
- Pauli Virtanen
- James Webber
- Warren Weckesser
- Eric Wieser +
- Josh Wilson
- Zhiqing Xiao +
- Evgeny Zhurko
- Nikolay Zinov +
- Zé Vinícius +
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.
- Python
Published by rgommers over 8 years ago
scipy - SciPy 1.0.0rc1
SciPy 1.0.0 Release Notes
.. note:: Scipy 1.0.0 is not released yet!
.. contents::
SciPy 1.0.0 is the culmination of 8 months of hard work. It contains 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. Moreover, our development attention will now shift to bug-fix releases on the 1.0.x branch, and on adding new features on the master branch.
Some of the highlights of this release are:
- Major build improvements. Windows wheels are available on PyPI for the first time, and continuous integration has been set up on Windows and OS X in addition to Linux.
- A set of new ODE solvers and a unified interface to them
(
scipy.integrate.solve_ivp). - Two new trust region optimizers and a new linear programming method, with
improved performance compared to what
scipy.optimizeoffered previously. - Many new BLAS and LAPACK functions were wrapped. The BLAS wrappers are now complete.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This is also the last release to support LAPACK 3.1.x - 3.3.x. Moving the lowest supported LAPACK version to >3.2.x was long blocked by Apple Accelerate providing the LAPACK 3.2.1 API. We have decided that it's time to either drop Accelerate or, if there is enough interest, provide shims for functions added in more recent LAPACK versions so it can still be used.
New features
scipy.cluster improvements
scipy.cluster.hierarchy.optimal_leaf_ordering, a function to reorder a
linkage matrix to minimize distances between adjacent leaves, was added.
scipy.fftpack improvements
N-dimensional versions of the discrete sine and cosine transforms and their
inverses were added as dctn, idctn, dstn and idstn.
scipy.integrate improvements
A set of new ODE solvers have been added to scipy.integrate. The convenience
function scipy.integrate.solve_ivp allows uniform access to all solvers.
The individual solvers (RK23, RK45, Radau, BDF and LSODA)
can also be used directly.
scipy.linalg improvements
The BLAS wrappers in scipy.linalg.blas have been completed. Added functions
are *gbmv, *hbmv, *hpmv, *hpr, *hpr2, *spmv, *spr,
*tbmv, *tbsv, *tpmv, *tpsv, *trsm, *trsv, *sbmv,
*spr2,
Wrappers for the LAPACK functions *gels, *stev, *sytrd, *hetrd,
*sytf2, *hetrf, *sytrf, *sycon, *hecon, *gglse,
*stebz, *stemr, *sterf, and *stein have been added.
The function scipy.linalg.subspace_angles has been added to compute the
subspace angles between two matrices.
The function scipy.linalg.clarkson_woodruff_transform has been added.
It finds low-rank matrix approximation via the Clarkson-Woodruff Transform.
The functions scipy.linalg.eigh_tridiagonal and
scipy.linalg.eigvalsh_tridiagonal, which find the eigenvalues and
eigenvectors of tridiagonal hermitian/symmetric matrices, were added.
scipy.ndimage improvements
Support for homogeneous coordinate transforms has been added to
scipy.ndimage.affine_transform.
The ndimage C code underwent a significant refactoring, and is now
a lot easier to understand and maintain.
scipy.optimize improvements
The methods trust-region-exact and trust-krylov have been added to the
function scipy.optimize.minimize. These new trust-region methods solve the
subproblem with higher accuracy at the cost of more Hessian factorizations
(compared to dogleg) or more matrix vector products (compared to ncg) but
usually require less nonlinear iterations and are able to deal with indefinite
Hessians. They seem very competitive against the other Newton methods
implemented in scipy.
scipy.optimize.linprog gained an interior point method. Its performance is
superior (both in accuracy and speed) to the older simplex method.
scipy.signal improvements
An argument fs (sampling frequency) was added to the following functions:
firwin, firwin2, firls, and remez. This makes these functions
consistent with many other functions in scipy.signal in which the sampling
frequency can be specified.
scipy.signal.freqz has been sped up significantly for FIR filters.
scipy.sparse improvements
Iterating over and slicing of CSC and CSR matrices is now faster by up to ~35%.
The tocsr method of COO matrices is now several times faster.
The diagonal method of sparse matrices now takes a parameter, indicating
which diagonal to return.
scipy.sparse.linalg improvements
A new iterative solver for large-scale nonsymmetric sparse linear systems,
scipy.sparse.linalg.gcrotmk, was added. It implements GCROT(m,k), a
flexible variant of GCROT.
scipy.sparse.linalg.lsmr now accepts an initial guess, yielding potentially
faster convergence.
SuperLU was updated to version 5.2.1.
scipy.spatial improvements
Many distance metrics in scipy.spatial.distance gained support for weights.
The signatures of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist were changed to *args, **kwargs in order to
support a wider range of metrics (e.g. string-based metrics that need extra
keywords). Also, an optional out parameter was added to pdist and
cdist allowing the user to specify where the resulting distance matrix is
to be stored
scipy.stats improvements
The methods cdf and logcdf were added to
scipy.stats.multivariate_normal, providing the cumulative distribution
function of the multivariate normal distribution.
New statistical distance functions were added, namely
scipy.stats.wasserstein_distance for the first Wasserstein distance and
scipy.stats.energy_distance for the energy distance.
Deprecated features
The following functions in scipy.misc are deprecated: bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow and toimage. Most of those functions have unexpected
behavior (like rescaling and type casting image data without the user asking
for that). Other functions simply have better alternatives.
scipy.interpolate.interpolate_wrapper and all functions in that submodule
are deprecated. This was a never finished set of wrapper functions which is
not relevant anymore.
The fillvalue of scipy.signal.convolve2d will be cast directly to the
dtypes of the input arrays in the future and checked that it is a scalar or
an array with a single element.
scipy.spatial.distance.matching is deprecated. It is an alias of
scipy.spatial.distance.hamming, which should be used instead.
Implementation of scipy.spatial.distance.wminkowski was based on a wrong
interpretation of the metric definition. In scipy 1.0 it has been just
deprecated in the documentation to keep retro-compatibility but is recommended
to use the new version of scipy.spatial.distance.minkowski that implements
the correct behaviour.
Positional arguments of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist should be replaced with their keyword version.
Backwards incompatible changes
The following deprecated functions have been removed from scipy.stats:
betai, chisqprob, f_value, histogram, histogram2,
pdf_fromgamma, signaltonoise, square_of_sums, ss and
threshold.
The following deprecated functions have been removed from scipy.stats.mstats:
betai, f_value_wilks_lambda, signaltonoise and threshold.
The deprecated a and reta keywords have been removed from
scipy.stats.shapiro.
The deprecated functions sparse.csgraph.cs_graph_components and
sparse.linalg.symeig have been removed from scipy.sparse.
The following deprecated keywords have been removed in scipy.sparse.linalg:
drop_tol from splu, and xtype from bicg, bicgstab, cg,
cgs, gmres, qmr and minres.
The deprecated functions expm2 and expm3 have been removed from
scipy.linalg. The deprecated keyword q was removed from
scipy.linalg.expm. And the deprecated submodule linalg.calc_lwork was
removed.
The deprecated functions C2K, K2C, F2C, C2F, F2K and
K2F have been removed from scipy.constants.
The deprecated ppform class was removed from scipy.interpolate.
The deprecated keyword iprint was removed from scipy.optimize.fmin_cobyla.
The default value for the zero_phase keyword of scipy.signal.decimate
has been changed to True.
The kmeans and kmeans2 functions in scipy.cluster.vq changed the
method used for random initialization, so using a fixed random seed will
not necessarily produce the same results as in previous versions.
scipy.special.gammaln does not accept complex arguments anymore.
The deprecated functions sph_jn, sph_yn, sph_jnyn, sph_in,
sph_kn, and sph_inkn have been removed. Users should instead use
the functions spherical_jn, spherical_yn, spherical_in, and
spherical_kn. Be aware that the new functions have different
signatures.
The cross-class properties of scipy.signal.lti systems have been removed.
The following properties/setters have been removed:
Name - (accessing/setting has been removed) - (setting has been removed)
- StateSpace - (
num,den,gain) - (zeros,poles) - TransferFunction (
A,B,C,D,gain) - (zeros,poles) - ZerosPolesGain (
A,B,C,D,num,den) - ()
signal.freqz(b, a) with b or a >1-D raises a ValueError. This
was a corner case for which it was unclear that the behavior was well-defined.
The method var of scipy.stats.dirichlet now returns a scalar rather than
an ndarray when the length of alpha is 1.
Other changes
SciPy now has a formal governance structure. It consists of a BDFL (Pauli
Virtanen) and a Steering Committee. See the governance document
<https://github.com/scipy/scipy/blob/master/doc/source/dev/governance/governance.rst>_
for details.
It is now possible to build SciPy on Windows with MSVC + gfortran! Continuous integration has been set up for this build configuration on Appveyor, building against OpenBLAS.
Continuous integration for OS X has been set up on TravisCI.
The SciPy test suite has been migrated from nose to pytest.
scipy/_distributor_init.py was added to allow redistributors of SciPy to
add custom code that needs to run when importing SciPy (e.g. checks for
hardware, DLL search paths, etc.).
Support for PEP 518 (specifying build system requirements) was added - see
pyproject.toml in the root of the SciPy repository.
In order to have consistent function names, the function
scipy.linalg.solve_lyapunov is renamed to
scipy.linalg.solve_continuous_lyapunov. The old name is kept for
backwards-compatibility.
Authors
- @arcady +
- @xoviat +
- Anton Akhmerov
- Dominic Antonacci +
- Alessandro Pietro Bardelli
- Ved Basu +
- Michael James Bedford +
- Ray Bell +
- Juan M. Bello-Rivas +
- Sebastian Berg
- Felix Berkenkamp
- Jyotirmoy Bhattacharya +
- Matthew Brett
- Jonathan Bright
- Bruno Jiménez +
- Evgeni Burovski
- Patrick Callier
- Mark Campanelli +
- CJ Carey
- Robert Cimrman
- Adam Cox +
- Michael Danilov +
- David Haberthür +
- Andras Deak +
- Philip DeBoer
- Anne-Sylvie Deutsch
- Cathy Douglass +
- Dominic Else +
- Guo Fei +
- Roman Feldbauer +
- Yu Feng
- Jaime Fernandez del Rio
- Orestis Floros +
- David Freese +
- Adam Geitgey +
- James Gerity +
- Dezmond Goff +
- Christoph Gohlke
- Ralf Gommers
- Dirk Gorissen +
- Matt Haberland +
- David Hagen +
- Charles Harris
- Lam Yuen Hei +
- Jean Helie +
- Gaute Hope +
- Guillaume Horel +
- Franziska Horn +
- Yevhenii Hyzyla +
- Vladislav Iakovlev +
- Marvin Kastner +
- Mher Kazandjian
- Thomas Keck
- Adam Kurkiewicz +
- Ronan Lamy +
- J.L. Lanfranchi +
- Eric Larson
- Denis Laxalde
- Gregory R. Lee
- Felix Lenders +
- Evan Limanto
- Julian Lukwata +
- François Magimel
- Syrtis Major +
- Charles Masson +
- Nikolay Mayorov
- Tobias Megies
- Markus Meister +
- Roman Mirochnik +
- Jordi Montes +
- Nathan Musoke +
- Andrew Nelson
- M.J. Nichol
- Juan Nunez-Iglesias
- Arno Onken +
- Nick Papior +
- Dima Pasechnik +
- Ashwin Pathak +
- Stefan Peterson
- Ilhan Polat
- Andrey Portnoy +
- Ravi Kumar Prasad +
- Aman Pratik
- Eric Quintero
- Vedant Rathore +
- Tyler Reddy
- Joscha Reimer
- Philipp Rentzsch +
- Antonio Horta Ribeiro
- Ned Richards +
- Kevin Rose +
- Benoit Rostykus +
- Matt Ruffalo +
- Eli Sadoff +
- Pim Schellart
- Nico Schlömer +
- Klaus Sembritzki +
- Nikolay Shebanov +
- Jonathan Tammo Siebert
- Scott Sievert
- Max Silbiger +
- Mandeep Singh +
- Michael Stewart +
- Jonathan Sutton +
- Deep Tavker +
- Martin Thoma
- James Tocknell +
- Aleksandar Trifunovic +
- Paul van Mulbregt +
- Jacob Vanderplas
- Aditya Vijaykumar
- Pauli Virtanen
- James Webber
- Warren Weckesser
- Eric Wieser +
- Josh Wilson
- Zhiqing Xiao +
- Evgeny Zhurko
- Nikolay Zinov +
- Zé Vinícius +
A total of 120 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.
- Python
Published by rgommers over 8 years ago
scipy - SciPy 1.0.0b1
This is the beta release for SciPy 1.0.0
SciPy 1.0.0 Release Notes
.. note:: Scipy 1.0.0 is not released yet!
.. contents::
SciPy 1.0.0 is the culmination of 8 months of hard work. It contains 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. Moreover, our development attention will now shift to bug-fix releases on the 1.0.x branch, and on adding new features on the master branch.
Some of the highlights of this release are:
- Major build improvements. Windows wheels are available on PyPI for the first time, and continuous integration has been set up on Windows and OS X in addition to Linux.
- A set of new ODE solvers and a unified interface to them
(
scipy.integrate.solve_ivp). - Two new trust region optimizers and a new linear programming method, with
improved performance compared to what
scipy.optimizeoffered previously. - Many new BLAS and LAPACK functions were wrapped. The BLAS wrappers are now complete.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This is also the last release to support LAPACK 3.1.x - 3.3.x. Moving the lowest supported LAPACK version to >3.2.x was long blocked by Apple Accelerate providing the LAPACK 3.2.1 API. We have decided that it's time to either drop Accelerate or, if there is enough interest, provide shims for functions added in more recent LAPACK versions so it can still be used.
New features
scipy.cluster improvements
scipy.cluster.hierarchy.optimal_leaf_ordering, a function to reorder a
linkage matrix to minimize distances between adjacent leaves, was added.
scipy.fftpack improvements
N-dimensional versions of the discrete sine and cosine transforms and their
inverses were added as dctn, idctn, dstn and idstn.
scipy.integrate improvements
A set of new ODE solvers have been added to scipy.integrate. The convenience
function scipy.integrate.solve_ivp allows uniform access to all solvers.
The individual solvers (RK23, RK45, Radau, BDF and LSODA)
can also be used directly.
scipy.linalg improvements
The BLAS wrappers in scipy.linalg.blas have been completed. Added functions
are *gbmv, *hbmv, *hpmv, *hpr, *hpr2, *spmv, *spr,
*tbmv, *tbsv, *tpmv, *tpsv, *trsm, *trsv, *sbmv,
*spr2,
Wrappers for the LAPACK functions *gels, *stev, *sytrd, *hetrd,
*sytf2, *hetrf, *sytrf, *sycon, *hecon, *gglse,
*stebz, *stemr, *sterf, and *stein have been added.
The function scipy.linalg.subspace_angles has been added to compute the
subspace angles between two matrices.
The function scipy.linalg.clarkson_woodruff_transform has been added.
It finds low-rank matrix approximation via the Clarkson-Woodruff Transform.
The functions scipy.linalg.eigh_tridiagonal and
scipy.linalg.eigvalsh_tridiagonal, which find the eigenvalues and
eigenvectors of tridiagonal hermitian/symmetric matrices, were added.
scipy.ndimage improvements
Support for homogeneous coordinate transforms has been added to
scipy.ndimage.affine_transform.
The ndimage C code underwent a significant refactoring, and is now
a lot easier to understand and maintain.
scipy.optimize improvements
The methods trust-region-exact and trust-krylov have been added to the
function scipy.optimize.minimize. These new trust-region methods solve the
subproblem with higher accuracy at the cost of more Hessian factorizations
(compared to dogleg) or more matrix vector products (compared to ncg) but
usually require less nonlinear iterations and are able to deal with indefinite
Hessians. They seem very competitive against the other Newton methods
implemented in scipy.
scipy.optimize.linprog gained an interior point method. Its performance is
superior (both in accuracy and speed) to the older simplex method.
scipy.signal improvements
An argument fs (sampling frequency) was added to the following functions:
firwin, firwin2, firls, and remez. This makes these functions
consistent with many other functions in scipy.signal in which the sampling
frequency can be specified.
scipy.signal.freqz has been sped up significantly for FIR filters.
scipy.sparse improvements
Iterating over and slicing of CSC and CSR matrices is now faster by up to ~35%.
The tocsr method of COO matrices is now several times faster.
The diagonal method of sparse matrices now takes a parameter, indicating
which diagonal to return.
scipy.sparse.linalg improvements
A new iterative solver for large-scale nonsymmetric sparse linear systems,
scipy.sparse.linalg.gcrotmk, was added. It implements GCROT(m,k), a
flexible variant of GCROT.
scipy.sparse.linalg.lsmr now accepts an initial guess, yielding potentially
faster convergence.
SuperLU was updated to version 5.2.1.
scipy.spatial improvements
Many distance metrics in scipy.spatial.distance gained support for weights.
The signatures of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist were changed to *args, **kwargs in order to
support a wider range of metrics (e.g. string-based metrics that need extra
keywords). Also, an optional out parameter was added to pdist and
cdist allowing the user to specify where the resulting distance matrix is
to be stored
scipy.stats improvements
The methods cdf and logcdf were added to
scipy.stats.multivariate_normal, providing the cumulative distribution
function of the multivariate normal distribution.
New statistical distance functions were added, namely
scipy.stats.wasserstein_distance for the first Wasserstein distance and
scipy.stats.energy_distance for the energy distance.
Deprecated features
The following functions in scipy.misc are deprecated: bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow and toimage. Most of those functions have unexpected
behavior (like rescaling and type casting image data without the user asking
for that). Other functions simply have better alternatives.
scipy.interpolate.interpolate_wrapper and all functions in that submodule
are deprecated. This was a never finished set of wrapper functions which is
not relevant anymore.
The fillvalue of scipy.signal.convolve2d will be cast directly to the
dtypes of the input arrays in the future and checked that it is a scalar or
an array with a single element.
Backwards incompatible changes
The following deprecated functions have been removed from scipy.stats:
betai, chisqprob, f_value, histogram, histogram2,
pdf_fromgamma, signaltonoise, square_of_sums, ss and
threshold.
The following deprecated functions have been removed from scipy.stats.mstats:
betai, f_value_wilks_lambda, signaltonoise and threshold.
The deprecated a and reta keywords have been removed from
scipy.stats.shapiro.
The deprecated functions sparse.csgraph.cs_graph_components and
sparse.linalg.symeig have been removed from scipy.sparse.
The following deprecated keywords have been removed in scipy.sparse.linalg:
drop_tol from splu, and xtype from bicg, bicgstab, cg,
cgs, gmres, qmr and minres.
The deprecated functions expm2 and expm3 have been removed from
scipy.linalg. The deprecated keyword q was removed from
scipy.linalg.expm. And the deprecated submodule linalg.calc_lwork was
removed.
The deprecated functions C2K, K2C, F2C, C2F, F2K and
K2F have been removed from scipy.constants.
The deprecated ppform class was removed from scipy.interpolate.
The deprecated keyword iprint was removed from scipy.optimize.fmin_cobyla.
The default value for the zero_phase keyword of scipy.signal.decimate
has been changed to True.
The kmeans and kmeans2 functions in scipy.cluster.vq changed the
method used for random initialization, so using a fixed random seed will
not necessarily produce the same results as in previous versions.
scipy.special.gammaln does not accept complex arguments anymore.
The deprecated functions sph_jn, sph_yn, sph_jnyn, sph_in,
sph_kn, and sph_inkn have been removed. Users should instead use
the functions spherical_jn, spherical_yn, spherical_in, and
spherical_kn. Be aware that the new functions have different
signatures.
The cross-class properties of scipy.signal.lti systems have been removed.
The following properties/setters have been removed:
Name - (accessing/setting has been removed) - (setting has been removed)
- StateSpace - (
num,den,gain) - (zeros,poles) - TransferFunction (
A,B,C,D,gain) - (zeros,poles) - ZerosPolesGain (
A,B,C,D,num,den) - ()
signal.freqz(b, a) with b or a >1-D raises a ValueError. This
was a corner case for which it was unclear that the behavior was well-defined.
The method var of scipy.stats.dirichlet now returns a scalar rather than
an ndarray when the length of alpha is 1.
Other changes
SciPy now has a formal governance structure. It consists of a BDFL (Pauli
Virtanen) and a Steering Committee. See the governance document
<https://github.com/scipy/scipy/blob/master/doc/source/dev/governance/governance.rst>_
for details.
It is now possible to build SciPy on Windows with MSVC + gfortran! Continuous integration has been set up for this build configuration on Appveyor, building against OpenBLAS.
Continuous integration for OS X has been set up on TravisCI.
The SciPy test suite has been migrated from nose to pytest.
scipy/_distributor_init.py was added to allow redistributors of SciPy to
add custom code that needs to run when importing SciPy (e.g. checks for
hardware, DLL search paths, etc.).
Support for PEP 518 (specifying build system requirements) was added - see
pyproject.toml in the root of the SciPy repository.
In order to have consistent function names, the function
scipy.linalg.solve_lyapunov is renamed to
scipy.linalg.solve_continuous_lyapunov. The old name is kept for
backwards-compatibility.
Authors
- @arcady +
- @xoviat +
- Anton Akhmerov
- Dominic Antonacci +
- Alessandro Pietro Bardelli
- Ved Basu +
- Michael James Bedford +
- Ray Bell +
- Juan M. Bello-Rivas +
- Sebastian Berg
- Felix Berkenkamp
- Jyotirmoy Bhattacharya +
- Matthew Brett
- Jonathan Bright
- Bruno Jiménez +
- Evgeni Burovski
- Patrick Callier
- Mark Campanelli +
- CJ Carey
- Adam Cox +
- Michael Danilov +
- David Haberthür +
- Andras Deak +
- Philip DeBoer
- Anne-Sylvie Deutsch
- Cathy Douglass +
- Dominic Else +
- Guo Fei +
- Roman Feldbauer +
- Yu Feng
- Jaime Fernandez del Rio
- Orestis Floros +
- David Freese +
- Adam Geitgey +
- James Gerity +
- Dezmond Goff +
- Christoph Gohlke
- Ralf Gommers
- Dirk Gorissen +
- Matt Haberland +
- David Hagen +
- Charles Harris
- Lam Yuen Hei +
- Jean Helie +
- Gaute Hope +
- Guillaume Horel +
- Franziska Horn +
- Yevhenii Hyzyla +
- Vladislav Iakovlev +
- Marvin Kastner +
- Mher Kazandjian
- Thomas Keck
- Adam Kurkiewicz +
- Ronan Lamy +
- J.L. Lanfranchi +
- Eric Larson
- Denis Laxalde
- Gregory R. Lee
- Felix Lenders +
- Evan Limanto
- Julian Lukwata +
- François Magimel
- Syrtis Major +
- Charles Masson +
- Nikolay Mayorov
- Tobias Megies
- Markus Meister +
- Roman Mirochnik +
- Jordi Montes +
- Nathan Musoke +
- Andrew Nelson
- M.J. Nichol
- Nico Schlömer +
- Juan Nunez-Iglesias
- Arno Onken +
- Dima Pasechnik +
- Ashwin Pathak +
- Stefan Peterson
- Ilhan Polat
- Andrey Portnoy +
- Ravi Kumar Prasad +
- Aman Pratik
- Eric Quintero
- Vedant Rathore +
- Tyler Reddy
- Joscha Reimer
- Philipp Rentzsch +
- Antonio Horta Ribeiro
- Ned Richards +
- Kevin Rose +
- Benoit Rostykus +
- Matt Ruffalo +
- Eli Sadoff +
- Pim Schellart
- Klaus Sembritzki +
- Nikolay Shebanov +
- Jonathan Tammo Siebert
- Scott Sievert
- Max Silbiger +
- Mandeep Singh +
- Michael Stewart +
- Jonathan Sutton +
- Deep Tavker +
- Martin Thoma
- James Tocknell +
- Aleksandar Trifunovic +
- Paul van Mulbregt +
- Jacob Vanderplas
- Aditya Vijaykumar
- Pauli Virtanen
- James Webber
- Warren Weckesser
- Eric Wieser +
- Josh Wilson
- Zhiqing Xiao +
- Evgeny Zhurko
- Nikolay Zinov +
- Zé Vinícius +
A total of 118 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.
- Python
Published by rgommers over 8 years ago
scipy - SciPy 0.19.1
SciPy 0.19.1 Release Notes
SciPy 0.19.1 is a bug-fix release with no new features compared to 0.19.0.
The most important change is a fix for a severe memory leak in integrate.quad.
Authors
- Evgeni Burovski
- Patrick Callier +
- Yu Feng
- Ralf Gommers
- Ilhan Polat
- Eric Quintero
- Scott Sievert
- Pauli Virtanen
- Warren Weckesser
A total of 9 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 for 0.19.1
- - gh-7214: Memory use in integrate.quad in scipy-0.19.0
- - gh-7258:
linalg.matrix_balancegives wrong transformation matrix - - gh-7262: Segfault in daily testing
- - gh-7273:
scipy.interpolate._bspl.evaluate_splinegets wrong type - - gh-7335: scipy.signal.dlti(A,B,C,D).freqresp() fails
Pull requests for 0.19.1
- - gh-7211: BUG: convolve may yield inconsistent dtypes with method changed
- - gh-7216: BUG: integrate: fix refcounting bug in quad()
- - gh-7229: MAINT: special: Rewrite a test of wrightomega
- - gh-7261: FIX: Corrected the transformation matrix permutation
- - gh-7265: BUG: Fix broken axis handling in spectral functions
- - gh-7266: FIX 7262: ckdtree crashes in query_knn.
- - gh-7279: Upcast half- and single-precision floats to doubles in BSpline...
- - gh-7336: BUG: Fix signal.dfreqresp for StateSpace systems
- - gh-7419: Fix several issues in
sparse.load_npz,save_npz - - gh-7420: BUG: stats: allow integers as kappa4 shape parameters
- Python
Published by rgommers almost 9 years ago
scipy - SciPy 0.19.0
SciPy 0.19.0 Release Notes
SciPy 0.19.0 is the culmination of 7 months of hard work. It contains 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. Moreover, our development attention will now shift to bug-fix releases on the 0.19.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4-3.6 and NumPy 1.8.2 or greater.
Highlights of this release include:
- - A unified foreign function interface layer,
scipy.LowLevelCallable. - - Cython API for scalar, typed versions of the universal functions from
the
scipy.specialmodule, viacimport scipy.special.cython_special.
New features
Foreign function interface improvements
scipy.LowLevelCallable provides a new unified interface for wrapping
low-level compiled callback functions in the Python space. It supports
Cython imported "api" functions, ctypes function pointers, CFFI function
pointers, PyCapsules, Numba jitted functions and more.
See gh-6509 <https://github.com/scipy/scipy/pull/6509>_ for details.
scipy.linalg improvements
The function scipy.linalg.solve obtained two more keywords assume_a and
transposed. The underlying LAPACK routines are replaced with "expert"
versions and now can also be used to solve symmetric, hermitian and positive
definite coefficient matrices. Moreover, ill-conditioned matrices now cause
a warning to be emitted with the estimated condition number information. Old
sym_pos keyword is kept for backwards compatibility reasons however it
is identical to using assume_a='pos'. Moreover, the debug keyword,
which had no function but only printing the overwrite_<a, b> values, is
deprecated.
The function scipy.linalg.matrix_balance was added to perform the so-called
matrix balancing using the LAPACK xGEBAL routine family. This can be used to
approximately equate the row and column norms through diagonal similarity
transformations.
The functions scipy.linalg.solve_continuous_are and
scipy.linalg.solve_discrete_are have numerically more stable algorithms.
These functions can also solve generalized algebraic matrix Riccati equations.
Moreover, both gained a balanced keyword to turn balancing on and off.
scipy.spatial improvements
scipy.spatial.SphericalVoronoi.sort_vertices_of_regions has been re-written in
Cython to improve performance.
scipy.spatial.SphericalVoronoi can handle > 200 k points (at least 10 million)
and has improved performance.
The function scipy.spatial.distance.directed_hausdorff was
added to calculate the directed Hausdorff distance.
count_neighbors method of scipy.spatial.cKDTree gained an ability to
perform weighted pair counting via the new keywords weights and
cumulative. See gh-5647 <https://github.com/scipy/scipy/pull/5647>_ for
details.
scipy.spatial.distance.pdist and scipy.spatial.distance.cdist now support
non-double custom metrics.
scipy.ndimage improvements
The callback function C API supports PyCapsules in Python 2.7
Multidimensional filters now allow having different extrapolation modes for different axes.
scipy.optimize improvements
The scipy.optimize.basinhopping global minimizer obtained a new keyword,
seed, which can be used to seed the random number generator and obtain
repeatable minimizations.
The keyword sigma in scipy.optimize.curve_fit was overloaded to also accept
the covariance matrix of errors in the data.
scipy.signal improvements
The function scipy.signal.correlate and scipy.signal.convolve have a new
optional parameter method. The default value of auto estimates the fastest
of two computation methods, the direct approach and the Fourier transform
approach.
A new function has been added to choose the convolution/correlation method,
scipy.signal.choose_conv_method which may be appropriate if convolutions or
correlations are performed on many arrays of the same size.
New functions have been added to calculate complex short time fourier
transforms of an input signal, and to invert the transform to recover the
original signal: scipy.signal.stft and scipy.signal.istft. This
implementation also fixes the previously incorrect ouput of
scipy.signal.spectrogram when complex output data were requested.
The function scipy.signal.sosfreqz was added to compute the frequency
response from second-order sections.
The function scipy.signal.unit_impulse was added to conveniently
generate an impulse function.
The function scipy.signal.iirnotch was added to design second-order
IIR notch filters that can be used to remove a frequency component from
a signal. The dual function scipy.signal.iirpeak was added to
compute the coefficients of a second-order IIR peak (resonant) filter.
The function scipy.signal.minimum_phase was added to convert linear-phase
FIR filters to minimum phase.
The functions scipy.signal.upfirdn and scipy.signal.resample_poly are now
substantially faster when operating on some n-dimensional arrays when n > 1.
The largest reduction in computation time is realized in cases where the size
of the array is small (<1k samples or so) along the axis to be filtered.
scipy.fftpack improvements
Fast Fourier transform routines now accept np.float16 inputs and upcast
them to np.float32. Previously, they would raise an error.
scipy.cluster improvements
Methods "centroid" and "median" of scipy.cluster.hierarchy.linkage
have been significantly sped up. Long-standing issues with using linkage on
large input data (over 16 GB) have been resolved.
scipy.sparse improvements
The functions scipy.sparse.save_npz and scipy.sparse.load_npz were added,
providing simple serialization for some sparse formats.
The prune method of classes bsr_matrix, csc_matrix, and csr_matrix
was updated to reallocate backing arrays under certain conditions, reducing
memory usage.
The methods argmin and argmax were added to classes coo_matrix,
csc_matrix, csr_matrix, and bsr_matrix.
New function scipy.sparse.csgraph.structural_rank computes the structural
rank of a graph with a given sparsity pattern.
New function scipy.sparse.linalg.spsolve_triangular solves a sparse linear
system with a triangular left hand side matrix.
scipy.special improvements
Scalar, typed versions of universal functions from scipy.special are available
in the Cython space via cimport from the new module
scipy.special.cython_special. These scalar functions can be expected to be
significantly faster then the universal functions for scalar arguments. See
the scipy.special tutorial for details.
Better control over special-function errors is offered by the
functions scipy.special.geterr and scipy.special.seterr and the
context manager scipy.special.errstate.
The names of orthogonal polynomial root functions have been changed to
be consistent with other functions relating to orthogonal
polynomials. For example, scipy.special.j_roots has been renamed
scipy.special.roots_jacobi for consistency with the related
functions scipy.special.jacobi and scipy.special.eval_jacobi. To
preserve back-compatibility the old names have been left as aliases.
Wright Omega function is implemented as scipy.special.wrightomega.
scipy.stats improvements
The function scipy.stats.weightedtau was added. It provides a weighted
version of Kendall's tau.
New class scipy.stats.multinomial implements the multinomial distribution.
New class scipy.stats.rv_histogram constructs a continuous univariate
distribution with a piecewise linear CDF from a binned data sample.
New class scipy.stats.argus implements the Argus distribution.
scipy.interpolate improvements
New class scipy.interpolate.BSpline represents splines. BSpline objects
contain knots and coefficients and can evaluate the spline. The format is
consistent with FITPACK, so that one can do, for example::
>>> t, c, k = splrep(x, y, s=0)
>>> spl = BSpline(t, c, k)
>>> np.allclose(spl(x), y)
spl* functions, scipy.interpolate.splev, scipy.interpolate.splint,
scipy.interpolate.splder and scipy.interpolate.splantider, accept both
BSpline objects and (t, c, k) tuples for backwards compatibility.
For multidimensional splines, c.ndim > 1, BSpline objects are consistent
with piecewise polynomials, scipy.interpolate.PPoly. This means that
BSpline objects are not immediately consistent with
scipy.interpolate.splprep, and one cannot do
>>> BSpline(*splprep([x, y])[0]). Consult the scipy.interpolate test suite
for examples of the precise equivalence.
In new code, prefer using scipy.interpolate.BSpline objects instead of
manipulating (t, c, k) tuples directly.
New function scipy.interpolate.make_interp_spline constructs an interpolating
spline given data points and boundary conditions.
New function scipy.interpolate.make_lsq_spline constructs a least-squares
spline approximation given data points.
scipy.integrate improvements
Now scipy.integrate.fixed_quad supports vector-valued functions.
Deprecated features
scipy.interpolate.splmake, scipy.interpolate.spleval and
scipy.interpolate.spline are deprecated. The format used by splmake/spleval
was inconsistent with splrep/splev which was confusing to users.
scipy.special.errprint is deprecated. Improved functionality is
available in scipy.special.seterr.
calling scipy.spatial.distance.pdist or scipy.spatial.distance.cdist with
arguments not needed by the chosen metric is deprecated. Also, metrics
"old_cosine" and "old_cos" are deprecated.
Backwards incompatible changes
The deprecated scipy.weave submodule was removed.
scipy.spatial.distance.squareform now returns arrays of the same dtype as
the input, instead of always float64.
scipy.special.errprint now returns a boolean.
The function scipy.signal.find_peaks_cwt now returns an array instead of
a list.
scipy.stats.kendalltau now computes the correct p-value in case the
input contains ties. The p-value is also identical to that computed by
scipy.stats.mstats.kendalltau and by R. If the input does not
contain ties there is no change w.r.t. the previous implementation.
The function scipy.linalg.block_diag will not ignore zero-sized matrices anymore.
Instead it will insert rows or columns of zeros of the appropriate size.
See gh-4908 for more details.
Other changes
SciPy wheels will now report their dependency on numpy on all platforms.
This change was made because Numpy wheels are available, and because the pip
upgrade behavior is finally changing for the better (use
--upgrade-strategy=only-if-needed for pip >= 8.2; that behavior will
become the default in the next major version of pip).
Numerical values returned by scipy.interpolate.interp1d with kind="cubic"
and "quadratic" may change relative to previous scipy versions. If your
code depended on specific numeric values (i.e., on implementation
details of the interpolators), you may want to double-check your results.
Authors
- @endolith
- Max Argus +
- Hervé Audren
- Alessandro Pietro Bardelli +
- Michael Benfield +
- Felix Berkenkamp
- Matthew Brett
- Per Brodtkorb
- Evgeni Burovski
- Pierre de Buyl
- CJ Carey
- Brandon Carter +
- Tim Cera
- Klesk Chonkin
- Christian Häggström +
- Luca Citi
- Peadar Coyle +
- Daniel da Silva +
- Greg Dooper +
- John Draper +
- drlvk +
- David Ellis +
- Yu Feng
- Baptiste Fontaine +
- Jed Frey +
- Siddhartha Gandhi +
- Wim Glenn +
- Akash Goel +
- Christoph Gohlke
- Ralf Gommers
- Alexander Goncearenco +
- Richard Gowers +
- Alex Griffing
- Radoslaw Guzinski +
- Charles Harris
- Callum Jacob Hays +
- Ian Henriksen
- Randy Heydon +
- Lindsey Hiltner +
- Gerrit Holl +
- Hiroki IKEDA +
- jfinkels +
- Mher Kazandjian +
- Thomas Keck +
- keuj6 +
- Kornel Kielczewski +
- Sergey B Kirpichev +
- Vasily Kokorev +
- Eric Larson
- Denis Laxalde
- Gregory R. Lee
- Josh Lefler +
- Julien Lhermitte +
- Evan Limanto +
- Jin-Guo Liu +
- Nikolay Mayorov
- Geordie McBain +
- Josue Melka +
- Matthieu Melot
- michaelvmartin15 +
- Surhud More +
- Brett M. Morris +
- Chris Mutel +
- Paul Nation
- Andrew Nelson
- David Nicholson +
- Aaron Nielsen +
- Joel Nothman
- nrnrk +
- Juan Nunez-Iglesias
- Mikhail Pak +
- Gavin Parnaby +
- Thomas Pingel +
- Ilhan Polat +
- Aman Pratik +
- Sebastian Pucilowski
- Ted Pudlik
- puenka +
- Eric Quintero
- Tyler Reddy
- Joscha Reimer
- Antonio Horta Ribeiro +
- Edward Richards +
- Roman Ring +
- Rafael Rossi +
- Colm Ryan +
- Sami Salonen +
- Alvaro Sanchez-Gonzalez +
- Johannes Schmitz
- Kari Schoonbee
- Yurii Shevchuk +
- Jonathan Siebert +
- Jonathan Tammo Siebert +
- Scott Sievert +
- Sourav Singh
- Byron Smith +
- Srikiran +
- Samuel St-Jean +
- Yoni Teitelbaum +
- Bhavika Tekwani
- Martin Thoma
- timbalam +
- Svend Vanderveken +
- Sebastiano Vigna +
- Aditya Vijaykumar +
- Santi Villalba +
- Ze Vinicius
- Pauli Virtanen
- Matteo Visconti
- Yusuke Watanabe +
- Warren Weckesser
- Phillip Weinberg +
- Nils Werner
- Jakub Wilk
- Josh Wilson
- wirew0rm +
- David Wolever +
- Nathan Woods
- ybeltukov +
- G Young
- Evgeny Zhurko +
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.
- Python
Published by ev-br about 9 years ago
scipy - Scipy 0.19.0 release candidate 2
This is the second release candidate for scipy 0.19.0. See https://github.com/scipy/scipy/blob/maintenance/0.19.x/doc/release/0.19.0-notes.rst for the release notes.
The main difference to rc1 is several Windows-specific issues that were fixed (Thanks Christoph!)
Please note that this is a source-only release. OS X and manylinux1 wheels will be produced for the final release.
If no issues are reported for this release, it will become the final 0.19.0 release. Issues can be reported via Github or on the scipy-dev mailing list (see http://scipy.org/scipylib/mailing-lists.html).
- Python
Published by ev-br over 9 years ago
scipy - Scipy 0.19.0 release candidate 1
This is the first release candidate for scipy 0.19.0. See https://github.com/scipy/scipy/blob/maintenance/0.19.x/doc/release/0.19.0-notes.rst for the release notes.
Please note that this is a source-only release.
If no issues are reported for this release, it will become the final 0.19.0 release. Issues can be reported via Github or on the scipy-dev mailing list (see http://scipy.org/scipylib/mailing-lists.html).
- Python
Published by ev-br over 9 years ago
scipy - SciPy 0.18.1
SciPy 0.18.1 Release Notes
SciPy 0.18.1 is a bug-fix release with no new features compared to 0.18.0.
Authors
- @kleskjr
- Evgeni Burovski
- CJ Carey
- Luca Citi +
- Yu Feng
- Ralf Gommers
- Johannes Schmitz +
- Josh Wilson
- Nathan Woods
A total of 9 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 for 0.18.1
- -
#6357 <https://github.com/scipy/scipy/issues/6357>__: scipy 0.17.1 piecewise cubic hermite interpolation does not return... - -
#6420 <https://github.com/scipy/scipy/issues/6420>__: circmean() changed behaviour from 0.17 to 0.18 - -
#6421 <https://github.com/scipy/scipy/issues/6421>_: scipy.linalg.solvebanded overwrites input 'b' when the inversion... - -
#6425 <https://github.com/scipy/scipy/issues/6425>__: cKDTree INF bug - -
#6435 <https://github.com/scipy/scipy/issues/6435>_: scipy.stats.ks2samp returns different values on different computers - -
#6458 <https://github.com/scipy/scipy/issues/6458>__: Error in scipy.integrate.dblquad when using variable integration...
Pull requests for 0.18.1
- -
#6405 <https://github.com/scipy/scipy/pull/6405>__: BUG: sparse: fix elementwise divide for CSR/CSC - -
#6431 <https://github.com/scipy/scipy/pull/6431>__: BUG: result for insufficient neighbours from cKDTree is wrong. - -
#6432 <https://github.com/scipy/scipy/pull/6432>_: BUG Issue #6421: scipy.linalg.solvebanded overwrites input 'b'... - -
#6455 <https://github.com/scipy/scipy/pull/6455>__: DOC: add links to release notes - -
#6462 <https://github.com/scipy/scipy/pull/6462>__: BUG: interpolate: fix .roots method of PchipInterpolator - -
#6492 <https://github.com/scipy/scipy/pull/6492>__: BUG: Fix regression in dblquad: #6458 - -
#6543 <https://github.com/scipy/scipy/pull/6543>__: fix the regression in circmean - -
#6545 <https://github.com/scipy/scipy/pull/6545>_: Revert gh-5938, restore ks2samp - -
#6557 <https://github.com/scipy/scipy/pull/6557>__: Backports for 0.18.1
- Python
Published by ev-br over 9 years ago
scipy - 0.18.0 release tag for DOI
This is the same tag as v0.18.0, but re-issued to obtain a DOI. The content and release notes can be found here: https://github.com/scipy/scipy/releases/tag/v0.18.0
- Python
Published by pv almost 10 years ago
scipy - Scipy 0.18.0
SciPy 0.18.0 Release Notes
SciPy 0.18.0 is the culmination of 6 months of hard work. It contains 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. Moreover, our development attention will now shift to bug-fix releases on the 0.19.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4-3.5 and NumPy 1.7.1 or greater.
Highlights of this release include:
- - A new ODE solver for two-point boundary value problems,
scipy.optimize.solve_bvp.
- - A new class, CubicSpline, for cubic spline interpolation of data.
- - N-dimensional tensor product polynomials, scipy.interpolate.NdPPoly.
- - Spherical Voronoi diagrams, scipy.spatial.SphericalVoronoi.
- - Support for discrete-time linear systems, scipy.signal.dlti.
New features
scipy.integrate improvements
A solver of two-point boundary value problems for ODE systems has been
implemented in scipy.integrate.solve_bvp. The solver allows for non-separated
boundary conditions, unknown parameters and certain singular terms. It finds
a C1 continious solution using a fourth-order collocation algorithm.
scipy.interpolate improvements
Cubic spline interpolation is now available via scipy.interpolate.CubicSpline.
This class represents a piecewise cubic polynomial passing through given points
and C2 continuous. It is represented in the standard polynomial basis on each
segment.
A representation of n-dimensional tensor product piecewise polynomials is
available as the scipy.interpolate.NdPPoly class.
Univariate piecewise polynomial classes, PPoly and Bpoly, can now be
evaluated on periodic domains. Use extrapolate="periodic" keyword
argument for this.
scipy.fftpack improvements
scipy.fftpack.next_fast_len function computes the next "regular" number for
FFTPACK. Padding the input to this length can give significant performance
increase for scipy.fftpack.fft.
scipy.signal improvements
Resampling using polyphase filtering has been implemented in the function
scipy.signal.resample_poly. This method upsamples a signal, applies a
zero-phase low-pass FIR filter, and downsamples using scipy.signal.upfirdn
(which is also new in 0.18.0). This method can be faster than FFT-based
filtering provided by scipy.signal.resample for some signals.
scipy.signal.firls, which constructs FIR filters using least-squares error
minimization, was added.
scipy.signal.sosfiltfilt, which does forward-backward filtering like
scipy.signal.filtfilt but for second-order sections, was added.
Discrete-time linear systems
```
scipy.signal.dlti provides an implementation of discrete-time linear systems.
Accordingly, the StateSpace, TransferFunction and ZerosPolesGain classes
have learned a the new keyword, dt, which can be used to create discrete-time
instances of the corresponding system representation.
scipy.sparse improvements
The functions sum, max, mean, min, transpose, and reshape in
scipy.sparse have had their signatures augmented with additional arguments
and functionality so as to improve compatibility with analogously defined
functions in numpy.
Sparse matrices now have a count_nonzero method, which counts the number of
nonzero elements in the matrix. Unlike getnnz() and nnz propety,
which return the number of stored entries (the length of the data attribute),
this method counts the actual number of non-zero entries in data.
scipy.optimize improvements
The implementation of Nelder-Mead minimization,
scipy.minimize(..., method="Nelder-Mead"), obtained a new keyword,
initial_simplex, which can be used to specify the initial simplex for the
optimization process.
Initial step size selection in CG and BFGS minimizers has been improved. We expect that this change will improve numeric stability of optimization in some cases. See pull request gh-5536 for details.
Handling of infinite bounds in SLSQP optimization has been improved. We expect that this change will improve numeric stability of optimization in the some cases. See pull request gh-6024 for details.
A large suite of global optimization benchmarks has been added to
scipy/benchmarks/go_benchmark_functions. See pull request gh-4191 for details.
Nelder-Mead and Powell minimization will now only set defaults for maximum iterations or function evaluations if neither limit is set by the caller. In some cases with a slow converging function and only 1 limit set, the minimization may continue for longer than with previous versions and so is more likely to reach convergence. See issue gh-5966.
scipy.stats improvements
Trapezoidal distribution has been implemented as scipy.stats.trapz.
Skew normal distribution has been implemented as scipy.stats.skewnorm.
Burr type XII distribution has been implemented as scipy.stats.burr12.
Three- and four-parameter kappa distributions have been implemented as
scipy.stats.kappa3 and scipy.stats.kappa4, respectively.
New scipy.stats.iqr function computes the interquartile region of a
distribution.
Random matrices ```
scipy.stats.special_ortho_group and scipy.stats.ortho_group provide
generators of random matrices in the SO(N) and O(N) groups, respectively. They
generate matrices in the Haar distribution, the only uniform distribution on
these group manifolds.
scipy.stats.random_correlation provides a generator for random
correlation matrices, given specified eigenvalues.
scipy.linalg improvements
scipy.linalg.svd gained a new keyword argument, lapack_driver. Available
drivers are gesdd (default) and gesvd.
scipy.linalg.lapack.ilaver returns the version of the LAPACK library SciPy
links to.
scipy.spatial improvements
Boolean distances, scipy.spatial.pdist, have been sped up. Improvements vary
by the function and the input size. In many cases, one can expect a speed-up
of x2--x10.
New class scipy.spatial.SphericalVoronoi constructs Voronoi diagrams on the
surface of a sphere. See pull request gh-5232 for details.
scipy.cluster improvements
A new clustering algorithm, the nearest neighbor chain algorithm, has been
implemented for scipy.cluster.hierarchy.linkage. As a result, one can expect
a significant algorithmic improvement (:math:O(N^2) instead of :math:O(N^3))
for several linkage methods.
scipy.special improvements
The new function scipy.special.loggamma computes the principal branch of the
logarithm of the Gamma function. For real input, loggamma is compatible
with scipy.special.gammaln. For complex input, it has more consistent
behavior in the complex plane and should be preferred over gammaln.
Vectorized forms of spherical Bessel functions have been implemented as
scipy.special.spherical_jn, scipy.special.spherical_kn,
scipy.special.spherical_in and scipy.special.spherical_yn.
They are recommended for use over sph_* functions, which are now deprecated.
Several special functions have been extended to the complex domain and/or
have seen domain/stability improvements. This includes spence, digamma,
log1p and several others.
Deprecated features
The cross-class properties of lti systems have been deprecated. The
following properties/setters will raise a DeprecationWarning:
Name - (accessing/setting raises warning) - (setting raises warning)
- StateSpace - (num, den, gain) - (zeros, poles)
- TransferFunction (A, B, C, D, gain) - (zeros, poles)
- ZerosPolesGain (A, B, C, D, num, den) - ()
Spherical Bessel functions, sph_in, sph_jn, sph_kn, sph_yn,
sph_jnyn and sph_inkn have been deprecated in favor of
scipy.special.spherical_jn and spherical_kn, spherical_yn,
spherical_in.
The following functions in scipy.constants are deprecated: C2K, K2C,
C2F, F2C, F2K and K2F. They are superceded by a new function
scipy.constants.convert_temperature that can perform all those conversions
plus to/from the Rankine temperature scale.
Backwards incompatible changes
scipy.optimize
The convergence criterion for optimize.bisect,
optimize.brentq, optimize.brenth, and optimize.ridder now
works the same as numpy.allclose.
scipy.ndimage
The offset in ndimage.iterpolation.affine_transform
is now consistently added after the matrix is applied,
independent of if the matrix is specified using a one-dimensional
or a two-dimensional array.
scipy.stats
stats.ks_2samp used to return nonsensical values if the input was
not real or contained nans. It now raises an exception for such inputs.
Several deprecated methods of scipy.stats distributions have been removed:
est_loc_scale, vecfunc, veccdf and vec_generic_moment.
Deprecated functions nanmean, nanstd and nanmedian have been removed
from scipy.stats. These functions were deprecated in scipy 0.15.0 in favor
of their numpy equivalents.
A bug in the rvs() method of the distributions in scipy.stats has
been fixed. When arguments to rvs() were given that were shaped for
broadcasting, in many cases the returned random samples were not random.
A simple example of the problem is stats.norm.rvs(loc=np.zeros(10)).
Because of the bug, that call would return 10 identical values. The bug
only affected code that relied on the broadcasting of the shape, location
and scale parameters.
The rvs() method also accepted some arguments that it should not have.
There is a potential for backwards incompatibility in cases where rvs()
accepted arguments that are not, in fact, compatible with broadcasting.
An example is
stats.gamma.rvs([2, 5, 10, 15], size=(2,2))
The shape of the first argument is not compatible with the requested size,
but the function still returned an array with shape (2, 2). In scipy 0.18,
that call generates a ValueError.
scipy.io
scipy.io.netcdf masking now gives precedence to the _FillValue attribute
over the missing_value attribute, if both are given. Also, data are only
treated as missing if they match one of these attributes exactly: values that
differ by roundoff from _FillValue or missing_value are no longer
treated as missing values.
scipy.interpolate
scipy.interpolate.PiecewisePolynomial class has been removed. It has been
deprecated in scipy 0.14.0, and scipy.interpolate.BPoly.from_derivatives serves
as a drop-in replacement.
Other changes
Scipy now uses setuptools for its builds instead of plain distutils. This
fixes usage of install_requires='scipy' in the setup.py files of
projects that depend on Scipy (see Numpy issue gh-6551 for details). It
potentially affects the way that build/install methods for Scipy itself behave
though. Please report any unexpected behavior on the Scipy issue tracker.
PR #6240 <https://github.com/scipy/scipy/pull/6240>__
changes the interpretation of the maxfun option in L-BFGS-B based routines
in the scipy.optimize module.
An L-BFGS-B search consists of multiple iterations,
with each iteration consisting of one or more function evaluations.
Whereas the old search strategy terminated immediately upon reaching maxfun
function evaluations, the new strategy allows the current iteration
to finish despite reaching maxfun.
The bundled copy of Qhull in the scipy.spatial subpackage has been upgraded to
version 2015.2.
The bundled copy of ARPACK in the scipy.sparse.linalg subpackage has been
upgraded to arpack-ng 3.3.0.
The bundled copy of SuperLU in the scipy.sparse subpackage has been upgraded
to version 5.1.1.
Authors
- @endolith
- @yanxun827 +
- @kleskjr +
- @MYheavyGo +
- @solarjoe +
- Gregory Allen +
- Gilles Aouizerate +
- Tom Augspurger +
- Henrik Bengtsson +
- Felix Berkenkamp
- Per Brodtkorb
- Lars Buitinck
- Daniel Bunting +
- Evgeni Burovski
- CJ Carey
- Tim Cera
- Grey Christoforo +
- Robert Cimrman
- Philip DeBoer +
- Yves Delley +
- Dávid Bodnár +
- Ion Elberdin +
- Gabriele Farina +
- Yu Feng
- Andrew Fowlie +
- Joseph Fox-Rabinovitz
- Simon Gibbons +
- Neil Girdhar +
- Kolja Glogowski +
- Christoph Gohlke
- Ralf Gommers
- Todd Goodall +
- Johnnie Gray +
- Alex Griffing
- Olivier Grisel
- Thomas Haslwanter +
- Michael Hirsch +
- Derek Homeier
- Golnaz Irannejad +
- Marek Jacob +
- InSuk Joung +
- Tetsuo Koyama +
- Eugene Krokhalev +
- Eric Larson
- Denis Laxalde
- Antony Lee
- Jerry Li +
- Henry Lin +
- Nelson Liu +
- Loïc Estève
- Lei Ma +
- Osvaldo Martin +
- Stefano Martina +
- Nikolay Mayorov
- Matthieu Melot +
- Sturla Molden
- Eric Moore
- Alistair Muldal +
- Maniteja Nandana
- Tavi Nathanson +
- Andrew Nelson
- Joel Nothman
- Behzad Nouri
- Nikolai Nowaczyk +
- Juan Nunez-Iglesias +
- Ted Pudlik
- Eric Quintero
- Yoav Ram
- Jonas Rauber +
- Tyler Reddy +
- Juha Remes
- Garrett Reynolds +
- Ariel Rokem +
- Fabian Rost +
- Bill Sacks +
- Jona Sassenhagen +
- Kari Schoonbee +
- Marcello Seri +
- Sourav Singh +
- Martin Spacek +
- Søren Fuglede Jørgensen +
- Bhavika Tekwani +
- Martin Thoma +
- Sam Tygier +
- Meet Udeshi +
- Utkarsh Upadhyay
- Bram Vandekerckhove +
- Sebastián Vanrell +
- Ze Vinicius +
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Jakub Wilk +
- Josh Wilson
- Phillip J. Wolfram +
- Nathan Woods
- Haochen Wu
- G Young +
A total of 99 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.
- Python
Published by ev-br almost 10 years ago
scipy - release candidate 2 for scipy 0.18.0
This is the second rc for scipy 0.18.0. Please test it --- both the release itself on your machines and your code against this release --- and report breakage (hopefully, there isn't one) on Github issue tracker or scipy-dev mailing list.
If no issues are reported for this rc, it will graduate into the final release.
- Python
Published by ev-br almost 10 years ago
scipy - 0.18.0 release candidate 1
This is the first release candidate for scipy 0.18.0. See https://github.com/scipy/scipy/blob/maintenance/0.18.x/doc/release/0.18.0-notes.rst for the release notes.
Please note that this is a source-only release.
If no issues are reported for this release, it will become the final 0.18.0 release. Issues can be reported via Github or on the scipy-dev mailing list (see http://scipy.org/scipylib/mailing-lists.html).
- Python
Published by ev-br almost 10 years ago
scipy - Scipy 0.17.1
SciPy 0.17.1 Release Notes
SciPy 0.17.1 is a bug-fix release with no new features compared to 0.17.0.
- Python
Published by ev-br about 10 years ago
scipy - Scipy 0.17.0
SciPy 0.17.0 Release Notes
SciPy 0.17.0 is the culmination of 6 months of hard work. It contains 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. Moreover, our development attention will now shift to bug-fix releases on the 0.17.x branch, and on adding new features on the master branch.
This release requires Python 2.6, 2.7 or 3.2-3.5 and NumPy 1.6.2 or greater.
Release highlights:
- New functions for linear and nonlinear least squares optimization with
constraints: `scipy.optimize.lsq_linear` and
`scipy.optimize.least_squares`
- Support for fitting with bounds in `scipy.optimize.curve_fit`.
- Significant improvements to `scipy.stats`, providing many functions with
better handing of inputs which have NaNs or are empty, improved
documentation, and consistent behavior between `scipy.stats` and
`scipy.stats.mstats`.
- Significant performance improvements and new functionality in
`scipy.spatial.cKDTree`.
New features
scipy.cluster improvements
A new function scipy.cluster.hierarchy.cut_tree, which determines a cut tree
from a linkage matrix, was added.
scipy.io improvements
scipy.io.mmwrite gained support for symmetric sparse matrices.
scipy.io.netcdf gained support for masking and scaling data based on data
attributes.
scipy.optimize improvements
Linear assignment problem solver
```
scipy.optimize.linear_sum_assignment is a new function for solving the
linear sum assignment problem. It uses the Hungarian algorithm (Kuhn-Munkres).
Least squares optimization ```
A new function for nonlinear least squares optimization with constraints was
added: scipy.optimize.least_squares. It provides several methods:
Levenberg-Marquardt for unconstrained problems, and two trust-region methods
for constrained ones. Furthermore it provides different loss functions.
New trust-region methods also handle sparse Jacobians.
A new function for linear least squares optimization with constraints was
added: scipy.optimize.lsq_linear. It provides a trust-region method as well
as an implementation of the Bounded-Variable Least-Squares (BVLS) algorithm.
scipy.optimize.curve_fit now supports fitting with bounds.
scipy.signal improvements
A mode keyword was added to scipy.signal.spectrogram, to let it return
other spectrograms than power spectral density.
scipy.stats improvements
Many functions in scipy.stats have gained a nan_policy keyword, which
allows specifying how to treat input with NaNs in them: propagate the NaNs,
raise an error, or omit the NaNs.
Many functions in scipy.stats have been improved to correctly handle input
arrays that are empty or contain infs/nans.
A number of functions with the same name in scipy.stats and
scipy.stats.mstats were changed to have matching signature and behavior.
See gh-5474 <https://github.com/scipy/scipy/issues/5474>__ for details.
scipy.stats.binom_test and scipy.stats.mannwhitneyu gained a keyword
alternative, which allows specifying the hypothesis to test for.
Eventually all hypothesis testing functions will get this keyword.
For methods of many continuous distributions, complex input is now accepted.
Matrix normal distribution has been implemented as scipy.stats.matrix_normal.
scipy.sparse improvements
The axis keyword was added to sparse norms, scipy.sparse.linalg.norm.
scipy.spatial improvements
scipy.spatial.cKDTree was partly rewritten for improved performance and
several new features were added to it:
- - the query_ball_point method became significantly faster
- - query and query_ball_point gained an n_jobs keyword for parallel
execution
- - build and query methods now release the GIL
- - full pickling support
- - support for periodic spaces
- - the sparse_distance_matrix method can now return and sparse matrix type
scipy.interpolate improvements
Out-of-bounds behavior of scipy.interpolate.interp1d has been improved.
Use a two-element tuple for the fill_value argument to specify separate
fill values for input below and above the interpolation range.
Linear and nearest interpolation kinds of scipy.interpolate.interp1d support
extrapolation via the fill_value="extrapolate" keyword.
fill_value can also be set to an array-like (or a two-element tuple of
array-likes for separate below and above values) so long as it broadcasts
properly to the non-interpolated dimensions of an array. This was implicitly
supported by previous versions of scipy, but support has now been formalized
and gets compatibility-checked before use. For example, a set of y values
to interpolate with shape (2, 3, 5) interpolated along the last axis (2)
could accept a fill_value array with shape () (singleton), (1,),
(2, 1), (1, 3), (3,), or (2, 3); or it can be a 2-element tuple
to specify separate below and above bounds, where each of the two tuple
elements obeys proper broadcasting rules.
scipy.linalg improvements
The default algorithm for scipy.linalg.leastsq has been changed to use
LAPACK's function *gelsd. Users wanting to get the previous behavior
can use a new keyword lapack_driver="gelss" (allowed values are
"gelss", "gelsd" and "gelsy").
scipy.sparse matrices and linear operators now support the matmul (@)
operator when available (Python 3.5+). See
PEP 465
A new function scipy.linalg.ordqz, for QZ decomposition with reordering, has
been added.
Deprecated features
scipy.stats.histogram is deprecated in favor of np.histogram, which is
faster and provides the same functionality.
scipy.stats.threshold and scipy.mstats.threshold are deprecated
in favor of np.clip. See issue #617 for details.
scipy.stats.ss is deprecated. This is a support function, not meant to
be exposed to the user. Also, the name is unclear. See issue #663 for details.
scipy.stats.square_of_sums is deprecated. This too is a support function
not meant to be exposed to the user. See issues #665 and #663 for details.
scipy.stats.f_value, scipy.stats.f_value_multivariate,
scipy.stats.f_value_wilks_lambda, and scipy.mstats.f_value_wilks_lambda
are deprecated. These are related to ANOVA, for which scipy.stats provides
quite limited functionality and these functions are not very useful standalone.
See issues #660 and #650 for details.
scipy.stats.chisqprob is deprecated. This is an alias. stats.chi2.sf
should be used instead.
scipy.stats.betai is deprecated. This is an alias for special.betainc
which should be used instead.
Backwards incompatible changes
The functions stats.trim1 and stats.trimboth now make sure the
elements trimmed are the lowest and/or highest, depending on the case.
Slicing without at least partial sorting was previously done, but didn't
make sense for unsorted input.
When variable_names is set to an empty list, scipy.io.loadmat now
correctly returns no values instead of all the contents of the MAT file.
Element-wise multiplication of sparse matrices now returns a sparse result in all cases. Previously, multiplying a sparse matrix with a dense matrix or array would return a dense matrix.
The function misc.lena has been removed due to license incompatibility.
The constructor for sparse.coo_matrix no longer accepts (None, (m,n))
to construct an all-zero matrix of shape (m,n). This functionality was
deprecated since at least 2007 and was already broken in the previous SciPy
release. Use coo_matrix((m,n)) instead.
The Cython wrappers in linalg.cython_lapack for the LAPACK routines
*gegs, *gegv, *gelsx, *geqpf, *ggsvd, *ggsvp,
*lahrd, *latzm, *tzrqf have been removed since these routines
are not present in the new LAPACK 3.6.0 release. With the exception of
the routines *ggsvd and *ggsvp, these were all deprecated in favor
of routines that are currently present in our Cython LAPACK wrappers.
Because the LAPACK *gegv routines were removed in LAPACK 3.6.0. The
corresponding Python wrappers in scipy.linalg.lapack are now
deprecated and will be removed in a future release. The source files for
these routines have been temporarily included as a part of scipy.linalg
so that SciPy can be built against LAPACK versions that do not provide
these deprecated routines.
Other changes
Html and pdf documentation of development versions of Scipy is now automatically rebuilt after every merged pull request.
scipy.constants is updated to the CODATA 2014 recommended values.
Usage of scipy.fftpack functions within Scipy has been changed in such a
way that PyFFTW <http://hgomersall.github.io/pyFFTW/>__ can easily replace
scipy.fftpack functions (with improved performance). See
gh-5295 <https://github.com/scipy/scipy/pull/5295>__ for details.
The imread functions in scipy.misc and scipy.ndimage were unified, for
which a mode argument was added to scipy.misc.imread. Also, bugs for
1-bit and indexed RGB image formats were fixed.
runtests.py, the development script to build and test Scipy, now allows
building in parallel with --parallel.
Authors
- @cel4 +
- @chemelnucfin +
- @endolith
- @mamrehn +
- @tosh1ki +
- Joshua L. Adelman +
- Anne Archibald
- Hervé Audren +
- Vincent Barrielle +
- Bruno Beltran +
- Sumit Binnani +
- Joseph Jon Booker
- Olga Botvinnik +
- Michael Boyle +
- Matthew Brett
- Zaz Brown +
- Lars Buitinck
- Pete Bunch +
- Evgeni Burovski
- CJ Carey
- Ien Cheng +
- Cody +
- Jaime Fernandez del Rio
- Ales Erjavec +
- Abraham Escalante
- Yves-Rémi Van Eycke +
- Yu Feng +
- Eric Firing
- Francis T. O'Donovan +
- André Gaul
- Christoph Gohlke
- Ralf Gommers
- Alex Griffing
- Alexander Grigorievskiy
- Charles Harris
- Jörn Hees +
- Ian Henriksen
- Derek Homeier +
- David Menéndez Hurtado
- Gert-Ludwig Ingold
- Aakash Jain +
- Rohit Jamuar +
- Jan Schlüter
- Johannes Ballé
- Luke Zoltan Kelley +
- Jason King +
- Andreas Kopecky +
- Eric Larson
- Denis Laxalde
- Antony Lee
- Gregory R. Lee
- Josh Levy-Kramer +
- Sam Lewis +
- François Magimel +
- Martín Gaitán +
- Sam Mason +
- Andreas Mayer
- Nikolay Mayorov
- Damon McDougall +
- Robert McGibbon
- Sturla Molden
- Will Monroe +
- Eric Moore
- Maniteja Nandana
- Vikram Natarajan +
- Andrew Nelson
- Marti Nito +
- Behzad Nouri +
- Daisuke Oyama +
- Giorgio Patrini +
- Fabian Paul +
- Christoph Paulik +
- Mad Physicist +
- Irvin Probst
- Sebastian Pucilowski +
- Ted Pudlik +
- Eric Quintero
- Yoav Ram +
- Joscha Reimer +
- Juha Remes
- Frederik Rietdijk +
- Rémy Léone +
- Christian Sachs +
- Skipper Seabold
- Sebastian Skoupý +
- Alex Seewald +
- Andreas Sorge +
- Bernardo Sulzbach +
- Julian Taylor
- Louis Tiao +
- Utkarsh Upadhyay +
- Jacob Vanderplas
- Gael Varoquaux +
- Pauli Virtanen
- Fredrik Wallner +
- Stefan van der Walt
- James Webber +
- Warren Weckesser
- Raphael Wettinger +
- Josh Wilson +
- Nat Wilson +
- Peter Yin +
A total of 101 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.
- Python
Published by ev-br over 10 years ago
scipy - 0.17.0 release candidate 2
This is the second release candidate for scipy 0.17.0. See https://github.com/scipy/scipy/blob/maintenance/0.17.x/doc/release/0.17.0-notes.rst for the release notes.
Please note that this is a source-only release: we do not provide win32 installers for scipy 0.17.0.
If no issues are reported for this release, it will become the final 0.17.0 release. Issues can be reported via Github or on the scipy-dev mailing list (see http://scipy.org/scipylib/mailing-lists.html).
- Python
Published by ev-br over 10 years ago
scipy - 0.17.0 release candidate 1
This is the first release candidate for scipy 0.17.0. See https://github.com/scipy/scipy/blob/maintenance/0.17.x/doc/release/0.17.0-notes.rst for the release notes.
Please note that this is a source-only release: we do not provide win32 installers for scipy 0.17.0.
If no issues are reported for this release, it will become the final 0.17.0 release. Issues can be reported via Github or on the scipy-dev mailing list (see http://scipy.org/scipylib/mailing-lists.html).
- Python
Published by ev-br over 10 years ago
scipy - this is not a release
This is just a random binary built from a random snapshot of a development branch, subject to be removed at any time. Do not use it for anything.
- Python
Published by ev-br over 10 years ago