Published April 2, 2024 | Version v1.13.0
Software Open

scipy/scipy: SciPy 1.13.0

Description

SciPy 1.13.0 Release Notes

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.dev.

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.
  • New method BSpline.insert_knot inserts a knot into a BSpline instance. This routine is similar to the module-level scipy.interpolate.insert function, and works with the BSpline objects instead of tck tuples.
  • 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 (65)
  • Matthias Bussonnier (4)
  • Tim Butters (1) +
  • Cale (1) +
  • CJ Carey (5)
  • 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 (147)
  • Matt Haberland (81)
  • Tessa van der Heiden (2) +
  • Shawn Hsu (1) +
  • inky (3) +
  • Jannes Münchmeyer (2) +
  • Aditya Vidyadhar Kamath (2) +
  • Agriya Khetarpal (1) +
  • Andrew Landau (1) +
  • Eric Larson (7)
  • Zhen-Qi Liu (1) +
  • Christian Lorentzen (2)
  • 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 (27)
  • Praveer Nidamaluri (1)
  • Yagiz Olmez (5) +
  • Dimitri Papadopoulos Orfanos (1)
  • Drew Parsons (1) +
  • Tirth Patel (7)
  • Pearu Peterson (1)
  • Matti Picus (3)
  • Rambaud Pierrick (1) +
  • Ilhan Polat (30)
  • Quentin Barthélemy (1)
  • Tyler Reddy (117)
  • Pamphile Roy (10)
  • Atsushi Sakai (8)
  • Daniel Schmitz (10)
  • Dan Schult (17)
  • Eli Schwartz (4)
  • Stefanie Senger (1) +
  • Scott Shambaugh (2)
  • Kevin Sheppard (2)
  • sidsrinivasan (4) +
  • Samuel St-Jean (1)
  • Albert Steppi (31)
  • 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 (8)
  • Elmar Zander (1) +
  • Mathias Zechmeister (1) +

A total of 96 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.

Files

scipy/scipy-v1.13.0.zip

Files (26.9 MB)

Name Size Download all
md5:70f2f918de5345ed41b43e6d6c459d0d
26.9 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/scipy/scipy/tree/v1.13.0 (URL)