github scipy/scipy v1.13.0rc1
SciPy 1.13.0rc1

latest release: v1.13.0
pre-releaseone month ago

SciPy 1.13.0 Release Notes

Note: SciPy 1.13.0 is not released yet!

SciPy 1.13.0 is the culmination of 3 months of hard work. This
out-of-band release aims to support NumPy 2.0.0, and is backwards
compatible to NumPy 1.22.4. The version of OpenBLAS used to build
the PyPI wheels has been increased to 0.3.26.

This release requires Python 3.9+ and NumPy 1.22.4 or greater.

For running on PyPy, PyPy3 6.0+ is required.

Highlights of this release

  • Support for NumPy 2.0.0.
  • Interactive examples have been added to the documentation, allowing users
    to run the examples locally on embedded Jupyterlite notebooks in their
    browser.
  • Preliminary 1D array support for the COO and DOK sparse formats.
  • Several scipy.stats functions have gained support for additional
    axis, nan_policy, and keepdims arguments. scipy.stats also
    has several performance and accuracy improvements.

New features

scipy.integrate improvements

  • The terminal attribute of scipy.integrate.solve_ivp events
    callables now additionally accepts integer values to specify a number
    of occurrences required for termination, rather than the previous restriction
    of only accepting a bool value to terminate on the first registered
    event.

scipy.io improvements

  • scipy.io.wavfile.write has improved dtype input validation.

scipy.interpolate improvements

  • The Modified Akima Interpolation has been added to
    interpolate.Akima1DInterpolator, available via the new method
    argument.
  • RegularGridInterpolator gained the functionality to compute derivatives
    in place. For instance, RegularGridInterolator((x, y), values, method="cubic")(xi, nu=(1, 1)) evaluates the mixed second derivative,
    :math:\partial^2 / \partial x \partial 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.signal improvements

  • Many filter design functions now have improved input validation for the
    sampling frequency (fs).

scipy.sparse improvements

  • coo_array now supports 1D shapes, and has additional 1D support for
    min, max, argmin, and argmax. The DOK format now has
    preliminary 1D support as well, though only supports simple integer indices
    at the time of writing.
  • Experimental support has been added for pydata/sparse array inputs to
    scipy.sparse.csgraph.
  • dok_array and dok_matrix now have proper implementations of
    fromkeys.
  • csr and csc formats now have improved setdiag performance.

scipy.spatial improvements

  • voronoi_plot_2d now draws Voronoi edges to infinity more clearly
    when the aspect ratio is skewed.

scipy.special improvements

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

scipy.stats improvements

  • scipy.stats.rankdata and scipy.stats.wilcoxon have been vectorized,
    improving their performance and the performance of hypothesis tests that
    depend on them.
  • stats.mannwhitneyu should now be faster due to a vectorized statistic
    calculation, improved caching, improved exploitation of symmetry, and a
    memory reduction. PermutationMethod support was also added.
  • scipy.stats.mood now has nan_policy and keepdims support.
  • scipy.stats.brunnermunzel now has axis and keepdims support.
  • scipy.stats.friedmanchisquare, scipy.stats.shapiro,
    scipy.stats.normaltest, scipy.stats.skewtest,
    scipy.stats.kurtosistest, scipy.stats.f_oneway,
    scipy.stats.alexandergovern, scipy.stats.combine_pvalues, and
    scipy.stats.kstest have gained axis, nan_policy and
    keepdims support.
  • scipy.stats.boxcox_normmax has gained a ymax parameter to allow user
    specification of the maximum value of the transformed data.
  • scipy.stats.vonmises pdf method has been extended to support
    kappa=0. The fit method is also more performant due to the use of
    non-trivial bounds to solve for kappa.
  • High order moment calculations for scipy.stats.powerlaw are now more
    accurate.
  • The fit methods of scipy.stats.gamma (with method='mm') and
    scipy.stats.loglaplace are faster and more reliable.
  • scipy.stats.goodness_of_fit now supports the use of a custom statistic
    provided by the user.
  • scipy.stats.wilcoxon now supports PermutationMethod, enabling
    calculation of accurate p-values in the presence of ties and zeros.
  • scipy.stats.monte_carlo_test now has improved robustness in the face of
    numerical noise.
  • scipy.stats.wasserstein_distance_nd was introduced to compute the
    Wasserstein-1 distance between two N-D discrete distributions.

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.

Backwards incompatible changes

Other changes

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

Authors

  • Name (commits)
  • h-vetinari (50)
  • acceptacross (1) +
  • Petteri Aimonen (1) +
  • Francis Allanah (2) +
  • Jonas Kock am Brink (1) +
  • anupriyakkumari (12) +
  • Aman Atman (2) +
  • Aaditya Bansal (1) +
  • Christoph Baumgarten (2)
  • Sebastian Berg (4)
  • Nicolas Bloyet (2) +
  • Matt Borland (1)
  • Jonas Bosse (1) +
  • Jake Bowhay (25)
  • Matthew Brett (1)
  • Dietrich Brunn (7)
  • Evgeni Burovski (48)
  • Matthias Bussonnier (4)
  • Cale (1) +
  • CJ Carey (4)
  • Thomas A Caswell (1)
  • Sean Cheah (44) +
  • Lucas Colley (97)
  • com3dian (1)
  • Gianluca Detommaso (1) +
  • Thomas Duvernay (1)
  • DWesl (2)
  • f380cedric (1) +
  • fancidev (13) +
  • Daniel Garcia (1) +
  • Lukas Geiger (3)
  • Ralf Gommers (139)
  • Matt Haberland (79)
  • Tessa van der Heiden (2) +
  • inky (3) +
  • Jannes Münchmeyer (2) +
  • Aditya Vidyadhar Kamath (2) +
  • Agriya Khetarpal (1) +
  • Andrew Landau (1) +
  • Eric Larson (7)
  • Zhen-Qi Liu (1) +
  • Adam Lugowski (4)
  • m-maggi (6) +
  • Chethin Manage (1) +
  • Ben Mares (1)
  • Chris Markiewicz (1) +
  • Mateusz Sokół (3)
  • Daniel McCloy (1) +
  • Melissa Weber Mendonça (6)
  • Josue Melka (1)
  • Michał Górny (4)
  • Juan Montesinos (1) +
  • Juan F. Montesinos (1) +
  • Takumasa Nakamura (1)
  • Andrew Nelson (26)
  • Praveer Nidamaluri (1)
  • Yagiz Olmez (5) +
  • Dimitri Papadopoulos Orfanos (1)
  • Drew Parsons (1) +
  • Tirth Patel (7)
  • Matti Picus (3)
  • Rambaud Pierrick (1) +
  • Ilhan Polat (30)
  • Quentin Barthélemy (1)
  • Tyler Reddy (81)
  • Pamphile Roy (10)
  • Atsushi Sakai (4)
  • Daniel Schmitz (10)
  • Dan Schult (16)
  • Eli Schwartz (4)
  • Stefanie Senger (1) +
  • Scott Shambaugh (2)
  • Kevin Sheppard (2)
  • sidsrinivasan (4) +
  • Samuel St-Jean (1)
  • Albert Steppi (30)
  • Adam J. Stewart (4)
  • Kai Striega (3)
  • Ruikang Sun (1) +
  • Mike Taves (1)
  • Nicolas Tessore (3)
  • Benedict T Thekkel (1) +
  • Will Tirone (4)
  • Jacob Vanderplas (2)
  • Christian Veenhuis (1)
  • Isaac Virshup (2)
  • Ben Wallace (1) +
  • Xuefeng Xu (3)
  • Xiao Yuan (5)
  • Irwin Zaid (6)
  • Mathias Zechmeister (1) +

A total of 91 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.

Don't miss a new scipy release

NewReleases is sending notifications on new releases.