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
, andkeepdims
arguments.scipy.stats
also
has several performance and accuracy improvements.
New features
scipy.integrate
improvements
- The
terminal
attribute ofscipy.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 abool
value to terminate on the first registered
event.
scipy.io
improvements
scipy.io.wavfile.write
has improveddtype
input validation.
scipy.interpolate
improvements
- The Modified Akima Interpolation has been added to
interpolate.Akima1DInterpolator
, available via the newmethod
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
atxi
.- 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 argumentssolver
andsolver_args
. Previous behavior (fast
construction, slow evaluations) can be obtained via"*_legacy"
methods:
method="cubic_legacy"
is exactly equivalent tomethod="cubic"
in
previous releases. Seegh-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
, andargmax
. 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
anddok_matrix
now have proper implementations of
fromkeys
.csr
andcsc
formats now have improvedsetdiag
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
, andcdflib
libraries
that the majority of special functions depend on, is ported to Cython/C. - The function
factorialk
now also supports faster, approximate
calculation usingexact=False
.
scipy.stats
improvements
scipy.stats.rankdata
andscipy.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 hasnan_policy
andkeepdims
support.scipy.stats.brunnermunzel
now hasaxis
andkeepdims
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 gainedaxis
,nan_policy
and
keepdims
support.scipy.stats.boxcox_normmax
has gained aymax
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
. Thefit
method is also more performant due to the use of
non-trivial bounds to solve forkappa
.- High order
moment
calculations forscipy.stats.powerlaw
are now more
accurate. - The
fit
methods ofscipy.stats.gamma
(withmethod='mm'
) and
scipy.stats.loglaplace
are faster and more reliable. scipy.stats.goodness_of_fit
now supports the use of a customstatistic
provided by the user.scipy.stats.wilcoxon
now supportsPermutationMethod
, 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
andAkima1DInterpolator
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, usenp.real
ony
.
Backwards incompatible changes
Other changes
- The second argument of
scipy.stats.moment
has been renamed toorder
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.