Skip to content

*Release Note Entries for SciPy 1.14.0 (asterisk makes this appear at the top)

Jake Bowhay edited this page Apr 29, 2024 · 15 revisions

This file contains release note entries for the SciPy 1.14.0 release. PR authors and maintainers can add descriptions here when a PR gets merged. The release manager will then integrate those into the release notes in the main repo. The reason for doing it this way is to avoid merge conflicts that would happen if many PRs each add a bit to those release notes. See gh-7794 for discussion on how we arrived at this mechanism.

To authors: if you're unsure about the formatting, please follow an example from https://github.com/scipy/scipy/blob/main/doc/source/release/1.12.0-notes.rst

Note also that the material on this page should be written in reST syntax. For literal text and routine names etc., use double backticks --- for parts where you want source code link, write the fully qualified name with single backticks, e.g. `scipy.sparse.linalg`


SciPy 1.14.0 Release Notes

Note: Scipy 1.14.0 has not been released yet

SciPy 1.14.0 is the culmination of X months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Before upgrading, we recommend that users check that their own code does not use deprecated SciPy functionality (to do so, run your code with python -Wd and check for DeprecationWarning s). Our development attention will now shift to bug-fix releases on the 1.10.x branch, and on adding new features on the master branch.

This release requires Python 3.X+ and NumPy 1.X.X or greater.

For running on PyPy, PyPy3 >= X.X and NumPy >=1.X.X are required.

Highlights of this release

  • SciPy now supports the new Accelerate library introduced in macOS 13.3, and has wheels built against Accelerate for macOS >=14.

New features

scipy.cluster improvements

scipy.constants improvements

scipy.datasets introduction

scipy.fft improvements

scipy.fftpack improvements

scipy.integrate improvements

scipy.interpolate improvements

scipy.io improvements

scipy.linalg improvements

scipy.misc improvements

scipy.ndimage improvements

scipy.optimize improvements

  • scipy.optimize.HessianUpdateStrategy now also accepts square arrays for init_scale.

scipy.signal improvements

scipy.sparse improvements

  • A special case has been added to handle multiplying a dia_array by a scalar, which avoids a potentially costly conversion to CSR format.

scipy.spatial improvements

  • Rotation supports an alternative "scalar-first" convention of quaternion components order. It is available via the keyword argument scalar_first=False of from_quat and as_quat methods.

scipy.special improvements

scipy.stats improvements

Deprecated features

Expired deprecations

There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:

  • Several previously deprecated methods for sparse arrays were removed: asfptype, getrow, getcol, get_shape, getmaxprint, set_shape, getnnz, and getformat. Additionally, the .A and .H attributes were removed.

  • scipy.integrate.{simps,trapz,cumtrapz} have been removed in favour of simpson, trapezoid, and cumulative_trapezoid

  • The tol argument of scipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk,gmres,lgmres,minres,qmr,tfqmr} has been removed in favour of rtol. Furthermore, the default value of atol for these functions has changed to 0.0.

  • The restrt argument of scipy.sparse.linalg.gmres has been removed in favour of restart.

  • The initial_lexsort argument of scipy.stats.kendalltau has been removed.

  • The cond and rcond arguments of scipy.linalg.pinv have been removed.

  • The even argument of scipy.integrate.simpson has been removed.

  • The turbo and eigvals arguments from scipy.linalg.{eigh,eigvalsh} have been removed

  • The legacy argument of scipy.special.comb has been removed

  • The hz/nyq argument of signal.{firls, firwin, firwin2, remez} has been removed

  • Coinciding with changes to function signatures (e.g. removal of a deprecated keyword), we are deprecating positional use of keyword arguments for the affected functions, which will now raise an error. Affected functions are:

    • sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}
    • stats.kendalltau
    • linalg.pinv
    • integrate.simpson
    • linalg.{eigh,eigvalsh}
    • special.comb
    • signal.{firls, firwin, firwin2, remez}

Backwards incompatible changes

Other changes

SciPy now uses C17 as the C standard to build with, instead of C99. The C++ standard remains C++17.

macOS Accelerate, which got a major upgrade in macOS 13.3, is now supported. This results in significant performance improvements for linear algebra operations, as well as smaller binary wheels.