Skip to content

Release Note Entries for SciPy 1.13.0

Lucas Colley edited this page Apr 15, 2024 · 1 revision

This file contains release note entries for the SciPy 1.13.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://raw.githubusercontent.com/scipy/scipy/master/doc/release/0.19.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.13.0 Release Notes

Note: Scipy 1.13.0 has not been released yet

SciPy 1.13.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

  • Interactive examples have been added to the documentation, allowing users to run the examples locally on embedded Jupyterlite notebooks in their browser.

New features

scipy.cluster improvements

scipy.constants improvements

scipy.datasets introduction

scipy.fft improvements

scipy.fftpack improvements

scipy.integrate improvements

  • The terminal attribute of event functions passed to scipy.integrate.solve_ivp may now be a positive integer: integration stops after terminal events have occurred.

scipy.interpolate improvements

  • The modified Modified Akima Interpolation has been added to interpolate.Akima1DInterpolator
  • RegularGridInterpolator gained the functionality to compute derivative in place. For instance, RegularGridInterolator((x, y), values, method="cubic")(xi, nu=(1, 1)) evaluates the mixed second derivative, :math:\partial^2 / \partial x \partial y at xi.
  • Performance characteristics of tensor-product spline methods of RegularGridInterpolator have been changed: evaluations should be significantly faster, while construction might be slower. If you experience issues with construction times, you may need to experiment with optional keyword arguments solver and solver_args. Previous behavior (fast construction, slow evaluations) can be obtained via "*_legacy" methods: method="cubic_legacy" is exactly equivalent to method="cubic" in previous releases. See gh-19633 for details.

scipy.io improvements

scipy.linalg improvements

scipy.misc improvements

scipy.ndimage improvements

scipy.optimize improvements

scipy.signal improvements

scipy.sparse improvements

  • Experimental support has been added for pydata/sparse array inputs to scipy.sparse.csgraph.

scipy.spatial improvements

scipy.special improvements

  • All Fortran code, namely, AMOS, specfun, and cdflib libraries that majority of special functions depends on, is ported to Cython/C.
  • The function factorialk now also supports faster, approximate calculation using exact=False.

scipy.stats improvements

  • scipy.stats.wasserstein_distance_nd was introduced to compute the Wasserstein-1 distance between two N-D discrete distributions.
  • Vectorized calculations with scipy.stats.wilcoxon, scipy.stats.mannwhitneyu, and scipy.stats.rankdata are faster.
  • The method parameter of scipy.stats.wilcoxon and scipy.stats.mannwhitneyu now accepts instances of scipy.stats.PermutationMethod for computing exact p-values in the presents of ties.
  • scipy.stats.boxcox_normmax now accepts ymax parameter, which allows users to specify the maximum allowable magnitude of the transformed data when method='mle'.
  • scipy.stats.loglaplace.fit is faster and more reliable.
  • scipy.stats.gamma.fit with method='mm' is faster and more reliable.
  • Moment calculations of scipy.stats.powerlaw are faster and more accurate.
  • The statistic parameter of scipy.stats.goodness_of_fit now accepts custom callables.
  • Support for axis, keepdims, and nan_policy keyword arguments has been added or improved for the following functions: scipy.stats.f_oneway, scipy.stats.alexandergovern, scipy.stats.shapiro, scipy.stats.normaltest, scipy.stats.skewtest, scipy.stats.kurtosistest, scipy.stats.friedmanchisquare, scipy.stats.brunnermunzel, and scipy.stats.mood`.

Deprecated features

  • Complex dtypes in PchipInterpolator and Akima1DInterpolator have been deprecated and will raise an error in SciPy 1.15.0. If you are trying to use the real components of the passed array, use np.real on y.

Expired deprecations

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

Backwards incompatible changes

Other changes

  • The second argument of scipy.stats.moment has been renamed to order while maintaining backward compatibility.