Releases: scipy/scipy
SciPy 1.16.2
SciPy 1.16.2 Release Notes
SciPy 1.16.2 is a bug-fix release with no new features
compared to 1.16.1. This is the first stable release of
SciPy to provide Windows on ARM wheels on PyPI.
Authors
- Name (commits)
- Dietrich Brunn (1)
- Ralf Gommers (6)
- Adam Jones (1)
- Gleb Khmyznikov (1) +
- Jost Migenda (1) +
- newyork_loki (1)
- Nick ODell (3)
- Dimitri Papadopoulos Orfanos (1)
- Ilhan Polat (2)
- Tyler Reddy (26)
- Mugunthan Selvanayagam (1) +
- Shuhei Watanabe (1) +
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.
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.
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 inscipy.signal, and additional support inscipy.statsand
scipy.special. Improved support for JAX and Dask backends has been added,
with notable support inscipy.cluster.hierarchy, many functions in
scipy.special, and many of the trimmed statistics functions. scipy.optimizenow uses the new Python implementation from the
PRIMApackage 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 or
scipy.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_2dand
scipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter and
scipy.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 larger
rhobegcan 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 the
scipy.optimize.least_squaresfunction, have been given aworkers
keyword. 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 accept
3-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 themultiplier
keyword 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 the
newton_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 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.apply
method.
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 to
scipy.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, and
scipy.stats.linregress. - Support for
keepdimsandnan_policykeywords was added to
`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 inscipy.signal, and additional support inscipy.statsand
scipy.special. Improved support for JAX and Dask backends has been added,
with notable support inscipy.cluster.hierarchy, many functions in
scipy.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 or
scipy.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_2dand
scipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter and
scipy.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 larger
rhobegcan 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 the
scipy.optimize.least_squaresfunction, have been given aworkers
keyword. 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 accept
3-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 themultiplier
keyword 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 the
newton_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 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.apply
method.
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 to
scipy.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, and
scipy.stats.linregress. - Support for
keepdimsandnan_policykeywords was added to
scipy.stats.gstd. - The performance of
scipy.stats.special_ortho_groupandscipy.stats.pearsonr
was improved. - Support for an ``rng`...
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 inscipy.signal, and additional support inscipy.statsand
scipy.special. Improved support for JAX and Dask backends has been added,
with notable support inscipy.cluster.hierarchy, many functions in
scipy.special, and many of the trimmed statistics functions. scipy.optimizenow uses the new Python implementation from the
PRIMApackage 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 or
scipy.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_2dand
scipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter and
scipy.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 byrhobegandtolrespectively. A larger
rhobegcan 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 the
scipy.optimize.least_squaresfunction, have been given aworkers
keyword. 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 accept
3-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 themultiplier
keyword 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 the
newton_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.apply
method.
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 to
scipy.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.pearsonr
was improved.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
multiple submodules in recent ...
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.
For the complete issue and PR lists see the raw release notes.
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.
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.
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.
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.csgraph
work 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
includingadd,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, and
nsumfor 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_splrepand
scipy.interpolate.make_splprepimplement construction of smoothing splines.
The algorithmic content is equivalent to FITPACK (splrepandsplprep
functions, 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_a
argument, 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, and
scipy.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
axes
argument that specifies which axes of the input filtering is to be performed
on. scipy.ndimage.rank_filtertime complexity has improved fromnto
log(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 functions
bracket_root,find_root,bracket_minimum, andfind_minimum
for 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 of
workers, 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,weightsand
floating_mean, enabling sample weighting and removal of an unknown
y-offset independently for each frequency. Additionally, thenormalize
argument 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_sptriangularand
sparse.linalg.spbandwidthmimic the existing dense tools
linalg.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 for
count_nonzero. - Sparse arrays and matrices may now raise errors when initialized with
incompatib...
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.csgraph
work 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
includingadd,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, and
nsumfor 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_splrepand
scipy.interpolate.make_splprepimplement construction of smoothing splines.
The algorithmic content is equivalent to FITPACK (splrepandsplprep
functions, 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_a
argument, 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, and
scipy.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
axes
argument that specifies which axes of the input filtering is to be performed
on. scipy.ndimage.rank_filtertime complexity has improved fromnto
log(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 functions
bracket_root,find_root,bracket_minimum, andfind_minimum
for 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 of
workers, 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,weightsand
floating_mean, enabling sample weighting and removal of an unknown
y-offset independently for each frequency. Additionally, thenormalize
argument 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_sptriangularand
sparse.linalg.spbandwidthmimic the existing dense tools
linalg.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 for
count_nonzero. - Sparse arrays and matrices may now rai...