Skip to content

Releases: scipy/scipy

SciPy 1.16.0

22 Jun 17:11
v1.16.0
Compare
Choose a tag to compare

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 in scipy.stats and
    scipy.special. Improved support for JAX and Dask backends has been added,
    with notable support in scipy.cluster.hierarchy, many functions in
    scipy.special, and many of the trimmed statistics functions.
  • scipy.optimize now uses the new Python implementation from the
    PRIMA package for COBYLA. The PRIMA implementation fixes many bugs
    in the old Fortran 77 implementation with a better performance on average.
  • scipy.sparse.coo_array now supports n-D arrays with reshaping, arithmetic and
    reduction operations like sum/mean/min/max. No n-D indexing or
    scipy.sparse.random_array support yet.
  • Updated guide and tools for migration from sparse matrices to sparse arrays.
  • Nearly all functions in the scipy.linalg namespace that accept array
    arguments now support N-dimensional arrays to be processed as a batch.
  • Two new scipy.signal functions, scipy.signal.firwin_2d and
    scipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter and
    scipy.signal.ShortTimeFFT dual 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_filter for generic filters that
    take advantage of a vectorized Python callable was added.

New features

scipy.io improvements

  • scipy.io.savemat now provides informative warnings for invalid field names.
  • scipy.io.mmread now provides a clearer error message when provided with
    a source file path that does not exist.
  • scipy.io.wavfile.read can now read non-seekable files.

scipy.integrate improvements

  • The error estimate of scipy.integrate.tanhsinh was improved.

scipy.interpolate improvements

  • Batch support was added to scipy.interpolate.make_smoothing_spline.

scipy.linalg improvements

  • Nearly all functions in the scipy.linalg namespace that accept array
    arguments now support N-dimensional arrays to be processed as a batch.
    See linalg_batch for details.
  • scipy.linalg.sqrtm is 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 argument disp and the optional output argument errest are
    deprecated and will be removed four versions later. Similarly, after
    changing the underlying algorithm to recursion, the blocksize keyword
    argument has no effect and will be removed two versions later.
  • Wrappers for ?stevd, ?langb, ?sytri, ?hetri and
    ?gbcon were added to scipy.linalg.lapack.
  • The default driver of scipy.linalg.eigh_tridiagonal was improved.
  • scipy.linalg.solve can now estimate the reciprocal condition number and
    the matrix norm calculation is more efficient.

scipy.ndimage improvements

  • A new function scipy.ndimage.vectorized_filter for generic filters that
    take advantage of a vectorized Python callable was added.
  • scipy.ndimage.rotate has 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 by rhobeg and tol respectively. A larger
    rhobeg can help the algorithm take bigger steps initially, while a
    smaller tol can help it continue and find a better solution.
    For more information, see the PRIMA documentation.
  • Several of the scipy.optimize.minimize methods, and the
    scipy.optimize.least_squares function, have been given a workers
    keyword. This allows parallelization of some calculations via a map-like
    callable, such as multiprocessing.Pool. These parallelization
    opportunities typically occur during numerical differentiation. This can
    greatly speed up minimization when the objective function is expensive to
    calculate.
  • The lm method of scipy.optimize.least_squares can now accept
    3-point and cs for the jac keyword.
  • 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 multiplier
    keyword of the returned scipy.optimize.OptimizeResult object.
  • NNLS code has been corrected and rewritten in C to address the performance
    regression introduced in 1.15.x
  • scipy.optimize.root now warns for invalid inner parameters when using the
    newton_krylov method
  • The return value of minimization with method='L-BFGS-B' now has
    a faster hess_inv.todense() implementation. Time complexity has improved
    from cubic to quadratic.
  • scipy.optimize.least_squares has a new callback argument that is applicable
    to the trf and dogbox methods. callback may 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_2d for the creation of a 2-D FIR Filter
    using the 1-D window method was added.
  • scipy.signal.cspline1d_eval and scipy.signal.qspline1d_eval now provide
    an informative error on empty input rather than hitting the recursion limit.
  • A new function scipy.signal.closest_STFT_dual_window to calculate the
    scipy.signal.ShortTimeFFT dual window of a given window closest to a
    desired dual window.
  • A new classmethod scipy.signal.ShortTimeFFT.from_win_equals_dual to
    create a scipy.signal.ShortTimeFFT instance 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.convolve2d was improved.

scipy.sparse improvements

  • scipy.sparse.coo_array now supports n-D arrays using binary and reduction
    operations.
  • Faster operations between two DIA arrays/matrices for: add, sub, multiply,
    matmul.
  • scipy.sparse.csgraph.dijkstra shortest_path is more efficient.
  • scipy.sparse.csgraph.yen has performance improvements.
  • Support for lazy loading of sparse.csgraph and sparse.linalg was
    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 as scipy.spatial.transform.Rotation.
  • scipy.spatial.transform.Rotation now has an appropriate __repr__ method,
    and improved performance for its scipy.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_distribution was 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_var keyword was added to scipy.stats.tukey_hsd (enables the
    Games-Howell test) and scipy.stats.f_oneway (enables Welch ANOVA).
  • The moment calculation for scipy.stats.gennorm was improved.
  • The scipy.stats.mode implementation was vectorized, for faster batch
    calculation.
  • Support for axis, nan_policy, and keepdims keywords 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 keepdims and nan_policy keywords was added to
    `scipy....
Read more

SciPy 1.16.0rc2

08 Jun 18:16
v1.16.0rc2
Compare
Choose a tag to compare
SciPy 1.16.0rc2 Pre-release
Pre-release

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 in scipy.stats and
    scipy.special. Improved support for JAX and Dask backends has been added,
    with notable support in scipy.cluster.hierarchy, many functions in
    scipy.special, and many of the trimmed statistics functions.
  • scipy.optimize now uses the new Python implementation from the PRIMA package for COBYLA.
    The PRIMA implementation fixes many bugs in the old Fortran 77 implementation with
    a better performance on average.
  • scipy.sparse.coo_array now supports n-D arrays with reshaping, arithmetic and
    reduction operations like sum/mean/min/max. No n-D indexing or
    scipy.sparse.random_array support yet.
  • Updated guide and tools for migration from sparse matrices to sparse arrays.
  • Nearly all functions in the scipy.linalg namespace that accept array
    arguments now support N-dimensional arrays to be processed as a batch.
  • Two new scipy.signal functions, scipy.signal.firwin_2d and
    scipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter and
    scipy.signal.ShortTimeFFT dual 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.savemat now provides informative warnings for invalid field names.
  • scipy.io.mmread now provides a clearer error message when provided with
    a source file path that does not exist.
  • scipy.io.wavfile.read can now read non-seekable files.

scipy.integrate improvements

  • The error estimate of scipy.integrate.tanhsinh was improved.

scipy.interpolate improvements

  • Batch support was added to scipy.interpolate.make_smoothing_spline.

scipy.linalg improvements

  • Nearly all functions in the scipy.linalg namespace that accept array
    arguments now support N-dimensional arrays to be processed as a batch.
    See :ref:linalg_batch for details.
  • scipy.linalg.sqrtm is 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 argument disp and the optional output argument errest are
    deprecated and will be removed four versions later. Similarly, after
    changing the underlying algorithm to recursion, the blocksize keyword
    argument has no effect and will be removed two versions later.
  • Wrappers for ?stevd, ?langb, ?sytri, ?hetri and
    ?gbcon were added to scipy.linalg.lapack.
  • The default driver of scipy.linalg.eigh_tridiagonal was improved.
  • scipy.linalg.solve can now estimate the reciprocal condition number and
    the matrix norm calculation is more efficient.

scipy.ndimage improvements

  • A new function scipy.ndimage.vectorized_filter for generic filters that
    take advantage of a vectorized Python callable was added.
  • scipy.ndimage.rotate has 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 rhobeg and tol respectively. A larger
    rhobeg can help the algorithm take bigger steps initially, while a
    smaller tol can help it continue and find a better solution.
    For more information, see the PRIMA documentation.
  • Several of the scipy.optimize.minimize methods, and the
    scipy.optimize.least_squares function, have been given a workers
    keyword. This allows parallelization of some calculations via a map-like
    callable, such as multiprocessing.Pool. These parallelization
    opportunities typically occur during numerical differentiation. This can
    greatly speed up minimization when the objective function is expensive to
    calculate.
  • The lm method of scipy.optimize.least_squares can now accept
    3-point and cs for the jac keyword.
  • 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 multiplier
    keyword of the returned scipy.optimize.OptimizeResult object.
  • NNLS code has been corrected and rewritten in C to address the performance
    regression introduced in 1.15.x
  • scipy.optimize.root now warns for invalid inner parameters when using the
    newton_krylov method
  • The return value of minimization with method='L-BFGS-B' now has
    a faster hess_inv.todense() implementation. Time complexity has improved
    from cubic to quadratic.
  • scipy.optimize.least_squares has a new callback argument that is applicable
    to the trf and dogbox methods. callback may 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_2d for the creation of a 2-D FIR Filter
    using the 1-D window method was added.
  • scipy.signal.cspline1d_eval and scipy.signal.qspline1d_eval now provide
    an informative error on empty input rather than hitting the recursion limit.
  • A new function scipy.signal.closest_STFT_dual_window to calculate the
    scipy.signal.ShortTimeFFT dual window of a given window closest to a
    desired dual window.
  • A new classmethod scipy.signal.ShortTimeFFT.from_win_equals_dual to
    create a scipy.signal.ShortTimeFFT instance 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.convolve2d was improved.

scipy.sparse improvements

  • scipy.sparse.coo_array now supports n-D arrays using binary and reduction
    operations.
  • Faster operations between two DIA arrays/matrices for: add, sub, multiply,
    matmul.
  • scipy.sparse.csgraph.dijkstra shortest_path is more efficient.
  • scipy.sparse.csgraph.yen has performance improvements.
  • Support for lazy loading of sparse.csgraph and sparse.linalg was
    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 as scipy.spatial.transform.Rotation.
  • scipy.spatial.transform.Rotation now has an appropriate __repr__ method,
    and improved performance for its scipy.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_distribution was 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_var keyword was added to scipy.stats.tukey_hsd (enables the
    Games-Howell test) and scipy.stats.f_oneway (enables Welch ANOVA).
  • The moment calculation for scipy.stats.gennorm was improved.
  • The scipy.stats.mode implementation was vectorized, for faster batch
    calculation.
  • Support for axis, nan_policy, and keepdims keywords 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 keepdims and nan_policy keywords was added to
    scipy.stats.gstd.
  • The performance of scipy.stats.special_ortho_group and scipy.stats.pearsonr
    was improved.
  • Support for an ``rng`...
Read more

SciPy 1.16.0rc1

21 May 19:09
v1.16.0rc1
Compare
Choose a tag to compare
SciPy 1.16.0rc1 Pre-release
Pre-release

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 in scipy.stats and
    scipy.special. Improved support for JAX and Dask backends has been added,
    with notable support in scipy.cluster.hierarchy, many functions in
    scipy.special, and many of the trimmed statistics functions.
  • scipy.optimize now uses the new Python implementation from the
    PRIMA package for COBYLA. The PRIMA implementation fixes many bugs
    in the old Fortran 77 implementation with a better performance on average.
  • scipy.sparse.coo_array now supports n-D arrays with reshaping, arithmetic and
    reduction operations like sum/mean/min/max. No n-D indexing or
    scipy.sparse.random_array support yet.
  • Updated guide and tools for migration from sparse matrices to sparse arrays.
  • All functions in the scipy.linalg namespace that accept array arguments
    now support N-dimensional arrays to be processed as a batch.
  • Two new scipy.signal functions, scipy.signal.firwin_2d and
    scipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter and
    scipy.signal.ShortTimeFFT dual 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.savemat now provides informative warnings for invalid field names.
  • scipy.io.mmread now provides a clearer error message when provided with
    a source file path that does not exist.
  • scipy.io.wavfile.read can now read non-seekable files.

scipy.integrate improvements

  • The error estimate of scipy.integrate.tanhsinh was improved.

scipy.interpolate improvements

  • Batch support was added to scipy.interpolate.make_smoothing_spline.

scipy.linalg improvements

  • All functions in the scipy.linalg namespace that accept array arguments
    now support N-dimensional arrays to be processed as a batch.
    See :ref:linalg_batch for details.
  • scipy.linalg.sqrtm is 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 argument disp and the optional output argument errest are
    deprecated and will be removed four versions later. Similarly, after
    changing the underlying algorithm to recursion, the blocksize keyword
    argument has no effect and will be removed two versions later.
  • Wrappers for ?stevd, ?langb, ?sytri, ?hetri and
    ?gbcon were added to scipy.linalg.lapack.
  • The default driver of scipy.linalg.eigh_tridiagonal was improved.
  • scipy.linalg.solve can now estimate the reciprocal condition number and
    the matrix norm calculation is more efficient.

scipy.ndimage improvements

  • A new function scipy.ndimage.vectorized_filter for generic filters that
    take advantage of a vectorized Python callable was added.
  • scipy.ndimage.rotate has 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 rhobeg and tol respectively. A larger
    rhobeg can help the algorithm take bigger steps initially, while a
    smaller tol can help it continue and find a better solution.
    For more information, see the PRIMA documentation.
  • Several of the scipy.optimize.minimize methods, and the
    scipy.optimize.least_squares function, have been given a workers
    keyword. This allows parallelization of some calculations via a map-like
    callable, such as multiprocessing.Pool. These parallelization
    opportunities typically occur during numerical differentiation. This can
    greatly speed up minimization when the objective function is expensive to
    calculate.
  • The lm method of scipy.optimize.least_squares can now accept
    3-point and cs for the jac keyword.
  • 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 multiplier
    keyword of the returned scipy.optimize.OptimizeResult object.
  • NNLS code has been corrected and rewritten in C to address the performance
    regression introduced in 1.15.x
  • scipy.optimize.root now warns for invalid inner parameters when using the
    newton_krylov method
  • The return value of minimization with method='L-BFGS-B' now has
    a faster hess_inv.todense() implementation. Time complexity has improved
    from cubic to quadratic.
  • scipy.optimize.least_squares has a new callback argument that is applicable
    to the trf and dogbox methods. callback may 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_2d for the creation of a 2-D FIR Filter
    using the 1-D window method was added.
  • scipy.signal.cspline1d_eval and scipy.signal.qspline1d_eval now provide
    an informative error on empty input rather than hitting the recursion limit.
  • A new function scipy.signal.closest_STFT_dual_window to calculate the
    ~scipy.signal.ShortTimeFFT dual window of a given window closest to a
    desired dual window.
  • A new classmethod scipy.signal.ShortTimeFFT.from_win_equals_dual to
    create a ~scipy.signal.ShortTimeFFT instance 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.convolve2d was improved.

scipy.sparse improvements

  • scipy.sparse.coo_array now supports n-D arrays using binary and reduction
    operations.
  • Faster operations between two DIA arrays/matrices for: add, sub, multiply,
    matmul.
  • scipy.sparse.csgraph.dijkstra shortest_path is more efficient.
  • scipy.sparse.csgraph.yen has performance improvements.
  • Support for lazy loading of sparse.csgraph and sparse.linalg was
    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 as scipy.spatial.transform.Rotation.
  • scipy.spatial.transform.Rotation now has an appropriate __repr__ method,
    and improved performance for its scipy.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_distribution was 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_var keyword was added to scipy.stats.tukey_hsd (enables the
    Games-Howell test) and scipy.stats.f_oneway (enables Welch ANOVA).
  • The moment calculation for scipy.stats.gennorm was improved.
  • The scipy.stats.mode implementation was vectorized, for faster batch
    calculation.
  • Support for axis, nan_policy, and keepdims keywords 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, and scipy.stats.boxcox_llf.
  • The performance of scipy.stats.special_ortho_group and scipy.stats.pearsonr
    was improved.

Array API Standard Support

Experimental support for array libraries other than NumPy has been added to
multiple submodules in recent ...

Read more

SciPy 1.15.3

08 May 16:20
v1.15.3
Compare
Choose a tag to compare

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

17 Feb 01:57
v1.15.2
Compare
Choose a tag to compare

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

11 Jan 00:13
v1.15.1
Compare
Choose a tag to compare

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

03 Jan 16:20
v1.15.0
Compare
Choose a tag to compare

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. Both sparse.linalg and sparse.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
    including add, subtract, reshape, transpose, matmul,
    dot, tensordot and others. More functionality is coming in future
    releases.

  • Preliminary support for free-threaded Python 3.13.

  • New probability distribution features in scipy.stats can 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.differentiate is a new top-level submodule for accurate
      estimation of derivatives of black box functions.
    • scipy.optimize.elementwise contains new functions for root-finding and
      minimization of univariate functions.
    • scipy.integrate offers new functions cubature, tanhsinh, and
      nsum for multivariate integration, univariate integration, and
      univariate series summation, respectively.
  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.

  • scipy.special adds 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.derivative for first-order derivatives of
    scalar-in, scalar-out functions.
  • Use scipy.differentiate.jacobian for first-order partial derivatives of
    vector-in, vector-out functions.
  • Use scipy.differentiate.hessian for 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.cubature function supports multidimensional
    integration, and has support for approximating integrals with
    one or more sets of infinite limits.
  • scipy.integrate.tanhsinh is now exposed for public use, allowing
    evaluation of a convergent integral using tanh-sinh quadrature.
  • scipy.integrate.nsum evaluates finite and infinite series and their
    logarithms.
  • scipy.integrate.lebedev_rule computes abscissae and weights for
    integration over the surface of a sphere.
  • The QUADPACK Fortran77 package has been ported to C.

scipy.interpolate improvements

  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.
  • scipy.interpolate.FloaterHormannInterpolator adds barycentric rational
    interpolation.
  • New functions scipy.interpolate.make_splrep and
    scipy.interpolate.make_splprep implement construction of smoothing splines.
    The algorithmic content is equivalent to FITPACK (splrep and splprep
    functions, and *UnivariateSpline classes) and the user API is consistent
    with make_interp_spline: these functions receive data arrays and return
    a scipy.interpolate.BSpline instance.
  • New generator function scipy.interpolate.generate_knots implements the
    FITPACK strategy for selecting knots of a smoothing spline given the
    smoothness parameter, s. The function exposes the internal logic of knot
    selection that splrep and *UnivariateSpline was using.

scipy.linalg improvements

  • scipy.linalg.interpolative Fortran77 code has been ported to Cython.
  • scipy.linalg.solve supports several new values for the assume_a
    argument, enabling faster computation for diagonal, tri-diagonal, banded, and
    triangular matrices. Also, when assume_a is left unspecified, the
    function now automatically detects and exploits diagonal, tri-diagonal,
    and triangular structures.
  • scipy.linalg matrix 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.funm is faster.
  • scipy.linalg.orthogonal_procrustes now supports complex input.
  • Wrappers for the following LAPACK routines have been added in
    scipy.linalg.lapack: ?lantr, ?sytrs, ?hetrs, ?trcon,
    and ?gtcon.
  • scipy.linalg.expm was rewritten in C.
  • scipy.linalg.null_space now accepts the new arguments overwrite_a,
    check_finite, and lapack_driver.
  • id_dist Fortran code was rewritten in Cython.

scipy.ndimage improvements

  • Several additional filtering functions now support an axes argument
    that specifies which axes of the input filtering is to be performed on.
    These include correlate, convolve, generic_laplace, laplace,
    gaussian_laplace, derivative2, generic_gradient_magnitude,
    gaussian_gradient_magnitude and generic_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_filter time complexity has improved from n to
    log(n).

scipy.optimize improvements

  • The vendored HiGHS library has been upgraded from 1.4.0 to 1.8.0,
    bringing accuracy and performance improvements to solvers.
  • The MINPACK Fortran77 package has been ported to C.
  • The L-BFGS-B Fortran77 package has been ported to C.
  • The new scipy.optimize.elementwise namespace includes functions
    bracket_root, find_root, bracket_minimum, and find_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_scalar and scipy.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_evolution now supports more general use of
    workers, such as passing a map-like callable.
  • scipy.optimize.nnls was rewritten in Cython.
  • HessianUpdateStrategy now supports __matmul__.

scipy.signal improvements

  • Add functionality of complex-valued waveforms to signal.chirp().
  • scipy.signal.lombscargle has two new arguments, weights and
    floating_mean, enabling sample weighting and removal of an unknown
    y-offset independently for each frequency. Additionally, the normalize
    argument includes a new option to return the complex representation of the
    amplitude and phase.
  • New function scipy.signal.envelope for 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_sptriangular and
    sparse.linalg.spbandwidth mimic the existing dense tools
    linalg.is_triangular and linalg.bandwidth.
  • sparse.linalg and sparse.csgraph now work with sparse arrays. Be
    careful that your index arrays are 32-bit. We are working on 64bit support.
  • The vendored ARPACK library has been upgraded to version 3.9.1.
  • COO, CSR, CSC and LIL formats now support the axis argument for
    count_nonzero.
  • Sparse arrays and matrices may now raise errors when initialized with
    incompatib...
Read more

SciPy 1.15.0rc2

24 Dec 15:04
v1.15.0rc2
Compare
Choose a tag to compare
SciPy 1.15.0rc2 Pre-release
Pre-release

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. Both sparse.linalg and sparse.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
    including add, subtract, reshape, transpose, matmul,
    dot, tensordot and others. More functionality is coming in future
    releases.

  • Preliminary support for free-threaded Python 3.13.

  • New probability distribution features in scipy.stats can 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.differentiate is a new top-level submodule for accurate
      estimation of derivatives of black box functions.
    • scipy.optimize.elementwise contains new functions for root-finding and
      minimization of univariate functions.
    • scipy.integrate offers new functions cubature, tanhsinh, and
      nsum for multivariate integration, univariate integration, and
      univariate series summation, respectively.
  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.

  • scipy.special adds 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.derivative for first-order derivatives of
    scalar-in, scalar-out functions.
  • Use scipy.differentiate.jacobian for first-order partial derivatives of
    vector-in, vector-out functions.
  • Use scipy.differentiate.hessian for 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.cubature function supports multidimensional
    integration, and has support for approximating integrals with
    one or more sets of infinite limits.
  • scipy.integrate.tanhsinh is now exposed for public use, allowing
    evaluation of a convergent integral using tanh-sinh quadrature.
  • scipy.integrate.nsum evaluates finite and infinite series and their
    logarithms.
  • scipy.integrate.lebedev_rule computes abscissae and weights for
    integration over the surface of a sphere.
  • The QUADPACK Fortran77 package has been ported to C.

scipy.interpolate improvements

  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.
  • scipy.interpolate.FloaterHormannInterpolator adds barycentric rational
    interpolation.
  • New functions scipy.interpolate.make_splrep and
    scipy.interpolate.make_splprep implement construction of smoothing splines.
    The algorithmic content is equivalent to FITPACK (splrep and splprep
    functions, and *UnivariateSpline classes) and the user API is consistent
    with make_interp_spline: these functions receive data arrays and return
    a scipy.interpolate.BSpline instance.
  • New generator function scipy.interpolate.generate_knots implements the
    FITPACK strategy for selecting knots of a smoothing spline given the
    smoothness parameter, s. The function exposes the internal logic of knot
    selection that splrep and *UnivariateSpline was using.

scipy.linalg improvements

  • scipy.linalg.interpolative Fortran77 code has been ported to Cython.
  • scipy.linalg.solve supports several new values for the assume_a
    argument, enabling faster computation for diagonal, tri-diagonal, banded, and
    triangular matrices. Also, when assume_a is left unspecified, the
    function now automatically detects and exploits diagonal, tri-diagonal,
    and triangular structures.
  • scipy.linalg matrix 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.funm is faster.
  • scipy.linalg.orthogonal_procrustes now supports complex input.
  • Wrappers for the following LAPACK routines have been added in
    scipy.linalg.lapack: ?lantr, ?sytrs, ?hetrs, ?trcon,
    and ?gtcon.
  • scipy.linalg.expm was rewritten in C.
  • scipy.linalg.null_space now accepts the new arguments overwrite_a,
    check_finite, and lapack_driver.
  • id_dist Fortran code was rewritten in Cython.

scipy.ndimage improvements

  • Several additional filtering functions now support an axes argument
    that specifies which axes of the input filtering is to be performed on.
    These include correlate, convolve, generic_laplace, laplace,
    gaussian_laplace, derivative2, generic_gradient_magnitude,
    gaussian_gradient_magnitude and generic_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_filter time complexity has improved from n to
    log(n).

scipy.optimize improvements

  • The vendored HiGHS library has been upgraded from 1.4.0 to 1.8.0,
    bringing accuracy and performance improvements to solvers.
  • The MINPACK Fortran77 package has been ported to C.
  • The L-BFGS-B Fortran77 package has been ported to C.
  • The new scipy.optimize.elementwise namespace includes functions
    bracket_root, find_root, bracket_minimum, and find_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_scalar and scipy.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_evolution now supports more general use of
    workers, such as passing a map-like callable.
  • scipy.optimize.nnls was rewritten in Cython.
  • HessianUpdateStrategy now supports __matmul__.

scipy.signal improvements

  • Add functionality of complex-valued waveforms to signal.chirp().
  • scipy.signal.lombscargle has two new arguments, weights and
    floating_mean, enabling sample weighting and removal of an unknown
    y-offset independently for each frequency. Additionally, the normalize
    argument includes a new option to return the complex representation of the
    amplitude and phase.
  • New function scipy.signal.envelope for 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_sptriangular and
    sparse.linalg.spbandwidth mimic the existing dense tools
    linalg.is_triangular and linalg.bandwidth.
  • sparse.linalg and sparse.csgraph now work with sparse arrays. Be
    careful that your index arrays are 32-bit. We are working on 64bit support.
  • The vendored ARPACK library has been upgraded to version 3.9.1.
  • COO, CSR, CSC and LIL formats now support the axis argument for
    count_nonzero.
  • Sparse arrays and matrices may now rai...
Read more

SciPy 1.15.0rc1

14 Dec 00:50
v1.15.0rc1
Compare
Choose a tag to compare
SciPy 1.15.0rc1 Pre-release
Pre-release

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. Both sparse.linalg and sparse.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
    including add, subtract, reshape, transpose, matmul,
    dot, tensordot and others. More functionality is coming in future
    releases.
  • Preliminary support for free-threaded Python 3.13.
  • New probability distribution features in scipy.stats can be used to improve
    the speed and accuracy of existing continuous distributions and perform new
    probability calculations.
  • scipy.differentiate is a new top-level submodule for accurate
    estimation of derivatives of black box functions.
  • scipy.optimize.elementwise provides vectorized root-finding and
    minimization of univariate functions, and it supports the array API
    as do new integrate functions tanhsinh, nsum, and cubature.
  • scipy.interpolate.AAA adds 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.derivative for first-order derivatives of
    scalar-in, scalar-out functions.
  • Use scipy.differentiate.jacobian for first-order partial derivatives of
    vector-in, vector-out functions.
  • Use scipy.differentiate.hessian for 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 QUADPACK Fortran77 package has been ported to C.
  • scipy.integrate.lebedev_rule computes abscissae and weights for
    integration over the surface of a sphere.
  • scipy.integrate.nsum evaluates finite and infinite series and their
    logarithms.
  • scipy.integrate.tanhsinh is now exposed for public use, allowing
    evaluation of a convergent integral using tanh-sinh quadrature.
  • The new scipy.integrate.cubature function supports multidimensional
    integration, and has support for approximating integrals with
    one or more sets of infinite limits.

scipy.interpolate improvements

  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.
  • scipy.interpolate.FloaterHormannInterpolator adds barycentric rational
    interpolation.
  • New functions scipy.interpolate.make_splrep and
    scipy.interpolate.make_splprep implement construction of smoothing splines.
    The algorithmic content is equivalent to FITPACK (splrep and splprep
    functions, and *UnivariateSpline classes) and the user API is consistent
    with make_interp_spline: these functions receive data arrays and return
    a scipy.interpolate.BSpline instance.
  • New generator function scipy.interpolate.generate_knots implements the
    FITPACK strategy for selecting knots of a smoothing spline given the
    smoothness parameter, s. The function exposes the internal logic of knot
    selection that splrep and *UnivariateSpline was using.

scipy.linalg improvements

  • scipy.linalg.interpolative Fortran77 code has been ported to Cython.
  • scipy.linalg.solve supports several new values for the assume_a
    argument, enabling faster computation for diagonal, tri-diagonal, banded, and
    triangular matrices. Also, when assume_a is left unspecified, the
    function now automatically detects and exploits diagonal, tri-diagonal,
    and triangular structures.
  • scipy.linalg matrix 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.funm is faster.
  • scipy.linalg.orthogonal_procrustes now supports complex input.
  • Wrappers for the following LAPACK routines have been added in
    scipy.linalg.lapack: ?lantr, ?sytrs, ?hetrs, ?trcon,
    and ?gtcon.
  • scipy.linalg.expm was rewritten in C.
  • scipy.linalg.null_space now accepts the new arguments overwrite_a,
    check_finite, and lapack_driver.
  • id_dist Fortran code was rewritten in Cython.

scipy.ndimage improvements

  • Several additional filtering functions now support an axes argument
    that specifies which axes of the input filtering is to be performed on.
    These include correlate, convolve, generic_laplace, laplace,
    gaussian_laplace, derivative2, generic_gradient_magnitude,
    gaussian_gradient_magnitude and generic_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_filter time complexity has improved from n to
    log(n).

scipy.optimize improvements

  • The vendored HiGHS library has been upgraded from 1.4.0 to 1.8.0,
    bringing accuracy and performance improvements to solvers.
  • The MINPACK Fortran77 package has been ported to C.
  • The L-BFGS-B Fortran77 package has been ported to C.
  • The new scipy.optimize.elementwise namespace includes functions
    bracket_root, find_root, bracket_minimum, and find_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_scalar and scipy.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_evolution now supports more general use of
    workers, such as passing a map-like callable.
  • scipy.optimize.nnls was rewritten in Cython.
  • HessianUpdateStrategy now supports __matmul__.

scipy.signal improvements

  • Add functionality of complex-valued waveforms to signal.chirp().
  • scipy.signal.lombscargle has two new arguments, weights and
    floating_mean, enabling sample weighting and removal of an unknown
    y-offset independently for each frequency. Additionally, the normalize
    argument includes a new option to return the complex representation of the
    amplitude and phase.
  • New function scipy.signal.envelope for 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_sptriangular and
    sparse.linalg.spbandwidth mimic the existing dense tools
    linalg.is_triangular and linalg.bandwidth.
  • sparse.linalg and sparse.csgraph now work with sparse arrays. Be
    careful that your index arrays are 32-bit. We are working on 64bit support.
  • The vendored ARPACK library has been upgraded to version 3.9.1.
  • COO, CSR, CSC and LIL formats now support the axis argument for
    count_nonzero.
  • Sparse arrays and matrices may now raise errors when initialized with
    incompatible data types, such as float16.
  • min, max, argmin, and argmax now support computation
    over nonzero elements only via the new explicit argument.
  • New functions get_index_dtype and safely_cast_index_arrays are
    available to facilitate index array casting in sparse.

scipy.spatial improvements

  • Rotation.concatenate now accepts a bare Rotation object, and will
    return a...
Read more

SciPy 1.14.1

21 Aug 00:10
v1.14.1
Compare
Choose a tag to compare

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.