ANN: SciPy 1.15.0 release

Hi all,

On behalf of the SciPy development team, I’m pleased to announce the release of SciPy 1.15.0. The release includes Python 3.13 free-threading wheels on PyPI.

Sources and binaries for this release are available at:
https://github.com/scipy/scipy/releases/tag/v1.15.0
and at: https://pypi.org/project/scipy/1.15.0/

One of a few ways to install this release with pip:
pip install scipy==1.15.0

SciPy 1.15.0 Release Notes

SciPy 1.15.0 is the culmination of 6 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.15.x branch, and on adding new features on the main branch.

This release requires Python 3.10-3.13 and NumPy 1.23.5 or greater.

Highlights of this release

  • Sparse arrays are now fully functional for 1-D and 2-D arrays. We recommend
    that all new code use sparse arrays instead of sparse matrices and that
    developers start to migrate their existing code from sparse matrix to sparse
    array: migration_to_sparray. Both sparse.linalg and sparse.csgraph
    work with either sparse matrix or sparse array and work internally with
    sparse array.

  • Sparse arrays now provide basic support for n-D arrays in the COO format
    including add, subtract, reshape, transpose, matmul,
    dot, tensordot and others. More functionality is coming in future
    releases.

  • Preliminary support for free-threaded Python 3.13.

  • New probability distribution features in scipy.stats can be used to improve
    the speed and accuracy of existing continuous distributions and perform new
    probability calculations.

  • Several new features support vectorized calculations with Python Array API
    Standard compatible input (see “Array API Standard Support” below):

    • scipy.differentiate is a new top-level submodule for accurate
      estimation of derivatives of black box functions.
    • scipy.optimize.elementwise contains new functions for root-finding and
      minimization of univariate functions.
    • scipy.integrate offers new functions cubature, tanhsinh, and
      nsum for multivariate integration, univariate integration, and
      univariate series summation, respectively.
  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.

  • scipy.special adds new functions offering improved Legendre function
    implementations with a more consistent interface.

New features

scipy.differentiate introduction

The new scipy.differentiate sub-package contains functions for accurate
estimation of derivatives of black box functions.

  • Use scipy.differentiate.derivative for first-order derivatives of
    scalar-in, scalar-out functions.
  • Use scipy.differentiate.jacobian for first-order partial derivatives of
    vector-in, vector-out functions.
  • Use scipy.differentiate.hessian for second-order partial derivatives of
    vector-in, scalar-out functions.

All functions use high-order finite difference rules with adaptive (real)
step size. To facilitate batch computation, these functions are vectorized
and support several Array API compatible array libraries in addition to NumPy
(see “Array API Standard Support” below).

scipy.integrate improvements

  • The new scipy.integrate.cubature function supports multidimensional
    integration, and has support for approximating integrals with
    one or more sets of infinite limits.
  • scipy.integrate.tanhsinh is now exposed for public use, allowing
    evaluation of a convergent integral using tanh-sinh quadrature.
  • scipy.integrate.nsum evaluates finite and infinite series and their
    logarithms.
  • scipy.integrate.lebedev_rule computes abscissae and weights for
    integration over the surface of a sphere.
  • The QUADPACK Fortran77 package has been ported to C.

scipy.interpolate improvements

  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.
  • scipy.interpolate.FloaterHormannInterpolator adds barycentric rational
    interpolation.
  • New functions scipy.interpolate.make_splrep and
    scipy.interpolate.make_splprep implement construction of smoothing splines.
    The algorithmic content is equivalent to FITPACK (splrep and splprep
    functions, and *UnivariateSpline classes) and the user API is consistent
    with make_interp_spline: these functions receive data arrays and return
    a scipy.interpolate.BSpline instance.
  • New generator function scipy.interpolate.generate_knots implements the
    FITPACK strategy for selecting knots of a smoothing spline given the
    smoothness parameter, s. The function exposes the internal logic of knot
    selection that splrep and *UnivariateSpline was using.

scipy.linalg improvements

  • scipy.linalg.interpolative Fortran77 code has been ported to Cython.
  • scipy.linalg.solve supports several new values for the assume_a
    argument, enabling faster computation for diagonal, tri-diagonal, banded, and
    triangular matrices. Also, when assume_a is left unspecified, the
    function now automatically detects and exploits diagonal, tri-diagonal,
    and triangular structures.
  • scipy.linalg matrix creation functions (scipy.linalg.circulant,
    scipy.linalg.companion, scipy.linalg.convolution_matrix,
    scipy.linalg.fiedler, scipy.linalg.fiedler_companion, and
    scipy.linalg.leslie) now support batch
    matrix creation.
  • scipy.linalg.funm is faster.
  • scipy.linalg.orthogonal_procrustes now supports complex input.
  • Wrappers for the following LAPACK routines have been added in
    scipy.linalg.lapack: ?lantr, ?sytrs, ?hetrs, ?trcon,
    and ?gtcon.
  • scipy.linalg.expm was rewritten in C.
  • scipy.linalg.null_space now accepts the new arguments overwrite_a,
    check_finite, and lapack_driver.
  • id_dist Fortran code was rewritten in Cython.

scipy.ndimage improvements

  • Several additional filtering functions now support an axes argument
    that specifies which axes of the input filtering is to be performed on.
    These include correlate, convolve, generic_laplace, laplace,
    gaussian_laplace, derivative2, generic_gradient_magnitude,
    gaussian_gradient_magnitude and generic_filter.
  • The binary and grayscale morphology functions now support an axes
    argument that specifies which axes of the input filtering is to be performed
    on.
  • scipy.ndimage.rank_filter time complexity has improved from n to
    log(n).

scipy.optimize improvements

  • The vendored HiGHS library has been upgraded from 1.4.0 to 1.8.0,
    bringing accuracy and performance improvements to solvers.
  • The MINPACK Fortran77 package has been ported to C.
  • The L-BFGS-B Fortran77 package has been ported to C.
  • The new scipy.optimize.elementwise namespace includes functions
    bracket_root, find_root, bracket_minimum, and find_minimum
    for root-finding and minimization of univariate functions. To facilitate
    batch computation, these functions are vectorized and support several
    Array API compatible array libraries in addition to NumPy (see
    “Array API Standard Support” below). Compared to existing functions (e.g.
    scipy.optimize.root_scalar and scipy.optimize.minimize_scalar),
    these functions can offer speedups of over 100x when used with NumPy arrays,
    and even greater gains are possible with other Array API Standard compatible
    array libraries (e.g. CuPy).
  • scipy.optimize.differential_evolution now supports more general use of
    workers, such as passing a map-like callable.
  • scipy.optimize.nnls was rewritten in Cython.
  • HessianUpdateStrategy now supports __matmul__.

scipy.signal improvements

  • Add functionality of complex-valued waveforms to signal.chirp().
  • scipy.signal.lombscargle has two new arguments, weights and
    floating_mean, enabling sample weighting and removal of an unknown
    y-offset independently for each frequency. Additionally, the normalize
    argument includes a new option to return the complex representation of the
    amplitude and phase.
  • New function scipy.signal.envelope for computation of the envelope of a
    real or complex valued signal.

scipy.sparse improvements

  • A migration guide is now available for
    moving from sparse.matrix to sparse.array in your code/library.
  • Sparse arrays now support indexing for 1-D and 2-D arrays. So, sparse
    arrays are now fully functional for 1-D and 2D.
  • n-D sparse arrays in COO format can now be constructed, reshaped and used
    for basic arithmetic.
  • New functions sparse.linalg.is_sptriangular and
    sparse.linalg.spbandwidth mimic the existing dense tools
    linalg.is_triangular and linalg.bandwidth.
  • sparse.linalg and sparse.csgraph now work with sparse arrays. Be
    careful that your index arrays are 32-bit. We are working on 64bit support.
  • The vendored ARPACK library has been upgraded to version 3.9.1.
  • COO, CSR, CSC and LIL formats now support the axis argument for
    count_nonzero.
  • Sparse arrays and matrices may now raise errors when initialized with
    incompatible data types, such as float16.
  • min, max, argmin, and argmax now support computation
    over nonzero elements only via the new explicit argument.
  • New functions get_index_dtype and safely_cast_index_arrays are
    available to facilitate index array casting in sparse.

scipy.spatial improvements

  • Rotation.concatenate now accepts a bare Rotation object, and will
    return a copy of it.

scipy.special improvements

  • New functions offering improved Legendre function implementations with a
    more consistent interface. See respective docstrings for more information.

    • scipy.special.legendre_p, scipy.special.legendre_p_all
    • scipy.special.assoc_legendre_p, scipy.special.assoc_legendre_p_all
    • scipy.special.sph_harm_y, scipy.special.sph_harm_y_all
    • scipy.special.sph_legendre_p, scipy.special.sph_legendre_p_all,
  • The factorial functions special.{factorial,factorial2,factorialk} now
    offer an extension to the complex domain by passing the kwarg
    extend='complex'. This is opt-in because it changes the values for
    negative inputs (which by default return 0), as well as for some integers
    (in the case of factorial2 and factorialk; for more details,
    check the respective docstrings).

  • scipy.special.zeta now defines the Riemann zeta function on the complex
    plane.

  • scipy.special.softplus computes the softplus function

  • The spherical Bessel functions (scipy.special.spherical_jn,
    scipy.special.spherical_yn, scipy.special.spherical_in, and
    scipy.special.spherical_kn) now support negative arguments with real dtype.

  • scipy.special.logsumexp now preserves precision when one element of the
    sum has magnitude much bigger than the rest.

  • The accuracy of several functions has been improved:

    • scipy.special.ncfdtr, scipy.special.nctdtr, and
      scipy.special.gdtrib have been improved throughout the domain.
    • scipy.special.hyperu is improved for the case of b=1, small x,
      and small a.
    • scipy.special.logit is improved near the argument p=0.5.
    • scipy.special.rel_entr is improved when x/y overflows, underflows,
      or is close to 1.
  • scipy.special.ndtr is now more efficient for sqrt(2)/2 < |x| < 1.

scipy.stats improvements

  • A new probability distribution infrastructure has been added for the
    implementation of univariate, continuous distributions. It has several
    speed, accuracy, memory, and interface advantages compared to the
    previous infrastructure. See rv_infrastructure for a tutorial.

    • Use scipy.stats.make_distribution to treat an existing continuous
      distribution (e.g. scipy.stats.norm) with the new infrastructure.
      This can improve the speed and accuracy of existing distributions,
      especially those with methods not overridden with distribution-specific
      formulas.
    • scipy.stats.Normal and scipy.stats.Uniform are pre-defined classes
      to represent the normal and uniform distributions, respectively.
      Their interfaces may be faster and more convenient than those produced by
      make_distribution.
    • scipy.stats.Mixture can be used to represent mixture distributions.
  • Instances of scipy.stats.Normal, scipy.stats.Uniform, and the classes
    returned by scipy.stats.make_distribution are supported by several new
    mathematical transformations.

    • scipy.stats.truncate for truncation of the support.
    • scipy.stats.order_statistic for the order statistics of a given number
      of IID random variables.
    • scipy.stats.abs, scipy.stats.exp, and scipy.stats.log. For example,
      scipy.stats.abs(Normal()) is distributed according to the folded normal
      and scipy.stats.exp(Normal()) is lognormally distributed.
  • The new scipy.stats.lmoment calculates sample l-moments and l-moment
    ratios. Notably, these sample estimators are unbiased.

  • scipy.stats.chatterjeexi computes the Xi correlation coefficient, which
    can detect nonlinear dependence. The function also performs a hypothesis
    test of independence between samples.

  • scipy.stats.wilcoxon has improved method resolution logic for the default
    method='auto'. Other values of method provided by the user are now
    respected in all cases, and the method argument approx has been
    renamed to asymptotic for consistency with similar functions. (Use of
    approx is still allowed for backward compatibility.)

  • There are several new probability distributions:

    • scipy.stats.dpareto_lognorm represents the double Pareto lognormal
      distribution.
    • scipy.stats.landau represents the Landau distribution.
    • scipy.stats.normal_inverse_gamma represents the normal-inverse-gamma
      distribution.
    • scipy.stats.poisson_binom represents the Poisson binomial distribution.
  • Batch calculation with scipy.stats.alexandergovern and
    scipy.stats.combine_pvalues is faster.

  • scipy.stats.chisquare added an argument sum_check. By default, the
    function raises an error when the sum of expected and obseved frequencies
    are not equal; setting sum_check=False disables this check to
    facilitate hypothesis tests other than Pearson’s chi-squared test.

  • The accuracy of several distribution methods has been improved, including:

    • scipy.stats.nct method pdf
    • scipy.stats.crystalball method sf
    • scipy.stats.geom method rvs
    • scipy.stats.cauchy methods logpdf, pdf, ppf and isf
    • The logcdf and/or logsf methods of distributions that do not
      override the generic implementation of these methods, including
      scipy.stats.beta, scipy.stats.betaprime, scipy.stats.cauchy,
      scipy.stats.chi, scipy.stats.chi2, scipy.stats.exponweib,
      scipy.stats.gamma, scipy.stats.gompertz, scipy.stats.halflogistic,
      scipy.stats.hypsecant, scipy.stats.invgamma, scipy.stats.laplace,
      scipy.stats.levy, scipy.stats.loggamma, scipy.stats.maxwell,
      scipy.stats.nakagami, and scipy.stats.t.
  • scipy.stats.qmc.PoissonDisk now accepts lower and upper bounds
    parameters l_bounds and u_bounds.

  • scipy.stats.fisher_exact now supports two-dimensional tables with shapes
    other than (2, 2).

Preliminary Support for Free-Threaded CPython 3.13

SciPy 1.15 has preliminary support for the free-threaded build of CPython
3.13. This allows SciPy functionality to execute in parallel with Python
threads
(see the threading stdlib module). This support was enabled by fixing a
significant number of thread-safety issues in both pure Python and
C/C++/Cython/Fortran extension modules. Wheels are provided on PyPI for this
release; NumPy >=2.1.3 is required at runtime. Note that building for a
free-threaded interpreter requires a recent pre-release or nightly for Cython
3.1.0.

Support for free-threaded Python does not mean that SciPy is fully thread-safe.
Please see scipy_thread_safety for more details.

If you are interested in free-threaded Python, for example because you have a
multiprocessing-based workflow that you are interested in running with Python
threads, we encourage testing and experimentation. If you run into problems
that you suspect are because of SciPy, please open an issue, checking first if
the bug also occurs in the “regular” non-free-threaded CPython 3.13 build.
Many threading bugs can also occur in code that releases the GIL; disabling
the GIL only makes it easier to hit threading bugs.

Array API Standard Support

Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, ndonnx, or CuPy arrays as array arguments. Features
with support added for SciPy 1.15.0 include:

  • All functions in scipy.differentiate (new sub-package)
  • All functions in scipy.optimize.elementwise (new namespace)
  • scipy.optimize.rosen, scipy.optimize.rosen_der, and
    scipy.optimize.rosen_hess
  • scipy.special.logsumexp
  • scipy.integrate.trapezoid
  • scipy.integrate.tanhsinh (newly public function)
  • scipy.integrate.cubature (new function)
  • scipy.integrate.nsum (new function)
  • scipy.special.chdtr, scipy.special.betainc, and scipy.special.betaincc
  • scipy.stats.boxcox_llf
  • scipy.stats.differential_entropy
  • scipy.stats.zmap, scipy.stats.zscore, and scipy.stats.gzscore
  • scipy.stats.tmean, scipy.stats.tvar, scipy.stats.tstd,
    scipy.stats.tsem, scipy.stats.tmin, and scipy.stats.tmax
  • scipy.stats.gmean, scipy.stats.hmean and scipy.stats.pmean
  • scipy.stats.combine_pvalues
  • scipy.stats.ttest_ind, scipy.stats.ttest_rel
  • scipy.stats.directional_stats
  • scipy.ndimage functions will now delegate to cupyx.scipy.ndimage,
    and for other backends will transit via NumPy arrays on the host.

Deprecated features and future changes

  • Functions scipy.linalg.interpolative.rand and
    scipy.linalg.interpolative.seed have been deprecated and will be removed
    in SciPy 1.17.0.
  • Complex inputs to scipy.spatial.distance.cosine and
    scipy.spatial.distance.correlation have been deprecated and will raise
    an error in SciPy 1.17.0.
  • scipy.spatial.distance.kulczynski1 and
    scipy.spatial.distance.sokalmichener were deprecated and will be removed
    in SciPy 1.17.0.
  • scipy.stats.find_repeats is deprecated and will be
    removed in SciPy 1.17.0. Please use
    numpy.unique/numpy.unique_counts instead.
  • scipy.linalg.kron is deprecated in favour of numpy.kron.
  • Using object arrays and longdouble arrays in scipy.signal
    convolution/correlation functions (scipy.signal.correlate,
    scipy.signal.convolve and scipy.signal.choose_conv_method) and
    filtering functions (scipy.signal.lfilter, scipy.signal.sosfilt) has
    been deprecated and will be removed in SciPy 1.17.0.
  • scipy.stats.linregress has deprecated one-argument use; the two
    variables must be specified as separate arguments.
  • scipy.stats.trapz is deprecated in favor of scipy.stats.trapezoid.
  • scipy.special.lpn is deprecated in favor of scipy.special.legendre_p_all.
  • scipy.special.lpmn and scipy.special.clpmn are deprecated in favor of
    scipy.special.assoc_legendre_p_all.
  • scipy.special.sph_harm has been deprecated in favor of
    scipy.special.sph_harm_y.
  • Multi-dimensional r and c arrays passed to scipy.linalg.toeplitz,
    scipy.linalg.matmul_toeplitz, or scipy.linalg.solve_toeplitz will be
    treated as batches of 1-D coefficients beginning in SciPy 1.17.0.
  • The random_state and permutations arguments of
    scipy.stats.ttest_ind are deprecated. Use method to perform a
    permutation test, instead.

Expired Deprecations

  • The wavelet functions in scipy.signal have been removed. This includes
    daub, qmf, cascade, morlet, morlet2, ricker,
    and cwt. Users should use pywavelets instead.
  • scipy.signal.cmplx_sort has been removed.
  • scipy.integrate.quadrature and scipy.integrate.romberg have been
    removed in favour of scipy.integrate.quad.
  • scipy.stats.rvs_ratio_uniforms has been removed in favor of
    scipy.stats.sampling.RatioUniforms.
  • scipy.special.factorial now raises an error for non-integer scalars when
    exact=True.
  • scipy.integrate.cumulative_trapezoid now raises an error for values of
    initial other than 0 and None.
  • Complex dtypes now raise an error in scipy.interpolate.Akima1DInterpolator
    and scipy.interpolate.PchipInterpolator
  • special.btdtr and special.btdtri have been removed.
  • The default of the exact= kwarg in special.factorialk has changed
    from True to False.
  • All functions in the scipy.misc submodule have been removed.

Backwards incompatible changes

  • interpolate.BSpline.integrate output is now always a numpy array.
    Previously, for 1D splines the output was a python float or a 0D array
    depending on the value of the extrapolate argument.
  • scipy.stats.wilcoxon now respects the method argument provided by the
    user. Previously, even if method='exact' was specified, the function
    would resort to method='approx' in some cases.
  • scipy.integrate.AccuracyWarning has been removed as the functions the
    warning was emitted from (scipy.integrate.quadrature and
    scipy.integrate.romberg) have been removed.

Other changes

  • A separate accompanying type stubs package, scipy-stubs, will be made
    available with the 1.15.0 release. Installation instructions are
    available
    .

  • scipy.stats.bootstrap now emits a FutureWarning if the shapes of the
    input arrays do not agree. Broadcast the arrays to the same batch shape
    (i.e. for all dimensions except those specified by the axis argument)
    to avoid the warning. Broadcasting will be performed automatically in the
    future.

  • SciPy endorsed SPEC-7,
    which proposes a rng argument to control pseudorandom number generation
    (PRNG) in a standard way, replacing legacy arguments like seed and
    random_sate. In many cases, use of rng will change the behavior of
    the function unless the argument is already an instance of
    numpy.random.Generator.

    • Effective in SciPy 1.15.0:

      • The rng argument has been added to the following functions:
        scipy.cluster.vq.kmeans, scipy.cluster.vq.kmeans2,
        scipy.interpolate.BarycentricInterpolator,
        scipy.interpolate.barycentric_interpolate,
        scipy.linalg.clarkson_woodruff_transform,
        scipy.optimize.basinhopping,
        scipy.optimize.differential_evolution, scipy.optimize.dual_annealing,
        scipy.optimize.check_grad, scipy.optimize.quadratic_assignment,
        scipy.sparse.random, scipy.sparse.random_array, scipy.sparse.rand,
        scipy.sparse.linalg.svds, scipy.spatial.transform.Rotation.random,
        scipy.spatial.distance.directed_hausdorff,
        scipy.stats.goodness_of_fit, scipy.stats.BootstrapMethod,
        scipy.stats.PermutationMethod, scipy.stats.bootstrap,
        scipy.stats.permutation_test, scipy.stats.dunnett, all
        scipy.stats.qmc classes that consume random numbers, and
        scipy.stats.sobol_indices.
      • When passed by keyword, the rng argument will follow the SPEC 7
        standard behavior: the argument will be normalized with
        np.random.default_rng before being used.
      • When passed by position or legacy keyword, the behavior of the argument
        will remain unchanged (for now).
    • It is planned that in 1.17.0 the legacy argument will start emitting
      warnings, and that in 1.19.0 the default behavior will change.

    • In all cases, users can avoid future disruption by proactively passing
      an instance of np.random.Generator by keyword rng. For details,
      see SPEC-7.

  • The SciPy build no longer adds -std=legacy for Fortran code,
    except when using Gfortran. This avoids problems with the new Flang and
    AMD Fortran compilers. It may make new build warnings appear for other
    compilers - if so, please file an issue.

  • scipy.signal.sosfreqz has been renamed to scipy.signal.freqz_sos.
    New code should use the new name. The old name is maintained as an alias for
    backwards compatibility.

  • Testing thread-safety improvements related to Python 3.13t have been
    made in: scipy.special, scipy.spatial, scipy.sparse,
    scipy.interpolate.

Authors (commits)

  • endolith (4)
  • h-vetinari (62)
  • a-drenaline (1) +
  • Afleloup (1) +
  • Ahmad Alkadri (1) +
  • Luiz Eduardo Amaral (3) +
  • Virgile Andreani (3)
  • Isaac Alonso Asensio (2) +
  • Matteo Bachetti (1) +
  • Arash Badie-Modiri (1) +
  • Arnaud Baguet (1) +
  • Soutrik Bandyopadhyay (1) +
  • Ankit Barik (1) +
  • Christoph Baumgarten (1)
  • Nickolai Belakovski (3)
  • Krishan Bhasin (1) +
  • Jake Bowhay (89)
  • Michael Bratsch (2) +
  • Matthew Brett (1)
  • Keith Briggs (1) +
  • Olly Britton (145) +
  • Dietrich Brunn (11)
  • Clemens Brunner (1)
  • Evgeni Burovski (185)
  • Matthias Bussonnier (7)
  • CJ Carey (32)
  • Cesar Carrasco (4) +
  • Hood Chatham (1)
  • Aadya Chinubhai (1)
  • Alessandro Chitarrini (1) +
  • Thibault de Coincy (1) +
  • Lucas Colley (217)
  • Martin Diehl (1) +
  • Djip007 (1) +
  • Kevin Doshi (2) +
  • Michael Dunphy (2)
  • Andy Everall (1) +
  • Thomas J. Fan (2)
  • fancidev (60)
  • Sergey Fedorov (2) +
  • Sahil Garje (1) +
  • Gabriel Gerlero (2)
  • Yotam Gingold (1) +
  • Ralf Gommers (111)
  • Rohit Goswami (62)
  • Anil Gurses (1) +
  • Oscar Gustafsson (1) +
  • Matt Haberland (392)
  • Matt Hall (1) +
  • Joren Hammudoglu (6) +
  • CY Han (1) +
  • Daniel Isaac (4) +
  • Maxim Ivanov (1)
  • Jakob Jakobson (2)
  • Janez Demšar (4) +
  • Chris Jerdonek (2) +
  • Adam Jones (4) +
  • Aditi Juneja (1) +
  • Nuri Jung (1) +
  • Guus Kamphuis (1) +
  • Aditya Karumanchi (2) +
  • Robert Kern (5)
  • Agriya Khetarpal (11)
  • Andrew Knyazev (7)
  • Gideon Genadi Kogan (1) +
  • Damien LaRocque (1) +
  • Eric Larson (10)
  • Gregory R. Lee (4)
  • Linfye (1) +
  • Boyu Liu (1) +
  • Drew Allan Loney (1) +
  • Christian Lorentzen (1)
  • Loïc Estève (2)
  • Smit Lunagariya (1)
  • Henry Lunn (1) +
  • Marco Maggi (4)
  • Lauren Main (1) +
  • Martin Spišák (1) +
  • Mateusz Sokół (4)
  • Jan-Kristian Mathisen (1) +
  • Nikolay Mayorov (2)
  • Nicholas McKibben (1)
  • Melissa Weber Mendonça (62)
  • João Mendes (10)
  • Gian Marco Messa (1) +
  • Samuel Le Meur-Diebolt (1) +
  • Michał Górny (2)
  • Naoto Mizuno (2)
  • Nicolas Mokus (2)
  • musvaage (18) +
  • Andrew Nelson (88)
  • Jens Hedegaard Nielsen (1) +
  • Roman Nigmatullin (8) +
  • Nick ODell (37)
  • Yagiz Olmez (4)
  • Matti Picus (9)
  • Diogo Pires (5) +
  • Ilhan Polat (96)
  • Zachary Potthoff (1) +
  • Tom M. Ragonneau (2)
  • Peter Ralph (1) +
  • Stephan Rave (1) +
  • Tyler Reddy (192)
  • redha2404 (2) +
  • Ritvik1sharma (1) +
  • Érico Nogueira Rolim (1) +
  • Heshy Roskes (1)
  • Pamphile Roy (34)
  • Mikhail Ryazanov (1) +
  • Sina Saber (1) +
  • Atsushi Sakai (1)
  • Clemens Schmid (1) +
  • Daniel Schmitz (17)
  • Moritz Schreiber (1) +
  • Dan Schult (91)
  • Searchingdays (1) +
  • Matias Senger (1) +
  • Scott Shambaugh (1)
  • Zhida Shang (1) +
  • Sheila-nk (4)
  • Romain Simon (2) +
  • Gagandeep Singh (31)
  • Albert Steppi (40)
  • Kai Striega (1)
  • Anushka Suyal (143) +
  • Alex Szatmary (1)
  • Svetlin Tassev (1) +
  • Ewout ter Hoeven (1)
  • Tibor Völcker (4) +
  • Kanishk Tiwari (1) +
  • Yusuke Toyama (1) +
  • Edgar Andrés Margffoy Tuay (124)
  • Adam Turner (2) +
  • Nicole Vadot (1) +
  • Andrew Valentine (1)
  • Christian Veenhuis (2)
  • vfdev (2) +
  • Pauli Virtanen (2)
  • Simon Waldherr (1) +
  • Stefan van der Walt (2)
  • Warren Weckesser (23)
  • Anreas Weh (1)
  • Benoît Wygas (2) +
  • Pavadol Yamsiri (3) +
  • ysard (1) +
  • Xiao Yuan (2)
  • Irwin Zaid (12)
  • Gang Zhao (1)
  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (10)

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

Complete issue and PR lists for this release are available in the raw release notes.

Checksums

MD5

960f2f68e8324d0e0bbb8224912d0d82  Changelog
d1c0545b8eb23b387d390477c5fddf61  README.txt
255e52945c6e36e4a7186384f94d0d37  scipy-1.15.0-cp310-cp310-macosx_10_13_x86_64.whl
8f493de83e6b235819a88cc9a6716faf  scipy-1.15.0-cp310-cp310-macosx_12_0_arm64.whl
098b5c8719d73b2be7a4ffb52f6c0c97  scipy-1.15.0-cp310-cp310-macosx_14_0_arm64.whl
13487d4eb3e0aa2041f51120d0abb7fa  scipy-1.15.0-cp310-cp310-macosx_14_0_x86_64.whl
dd68ad64fc715236e506a18fc447f25a  scipy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d0e9b77a640ad6e86d1326ccb4c81287  scipy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9d3415665b8ed8aa8ff47abfcf0f06fd  scipy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl
884e5ce911b383c97cd3ac9c9be2c933  scipy-1.15.0-cp310-cp310-win_amd64.whl
30bb9a01160285712e8a4a6087d73cf7  scipy-1.15.0-cp311-cp311-macosx_10_13_x86_64.whl
d823f6c39dfed23d244ed454a4fca8b2  scipy-1.15.0-cp311-cp311-macosx_12_0_arm64.whl
0cc8387d881713b9334afd5008622e52  scipy-1.15.0-cp311-cp311-macosx_14_0_arm64.whl
1281267a1edc30d7fd114d7b4c9cf056  scipy-1.15.0-cp311-cp311-macosx_14_0_x86_64.whl
71ce9eb7612363d21d0dce8d4858d5f5  scipy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
cffaaf9f18d19256c1728edddf63cd54  scipy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3ce7df6b9c38a112545d26debc2f723b  scipy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl
05c7d296bad483643955ab6b98f0c09e  scipy-1.15.0-cp311-cp311-win_amd64.whl
b2d579c23fedd9f54938ddb39893395d  scipy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl
bc6f1069b8851b5ee03a57f13949c943  scipy-1.15.0-cp312-cp312-macosx_12_0_arm64.whl
5026095b52459767ae37c9b112c3849d  scipy-1.15.0-cp312-cp312-macosx_14_0_arm64.whl
b4dc9857c6941c8f360d4cf141c53aba  scipy-1.15.0-cp312-cp312-macosx_14_0_x86_64.whl
6f98bef9425cdf122dce390e1e7f83f0  scipy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9b4a8c4ad21f8e48aa2930654d86493e  scipy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
394e229e6616a78e21dd24c9b8d501bc  scipy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl
83502b397a474682d63eef4dc23da4b5  scipy-1.15.0-cp312-cp312-win_amd64.whl
e6360bee0d9e988cbeb4d11fbae21326  scipy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl
485671cd765d5dc2ff7e8bfc621c3db8  scipy-1.15.0-cp313-cp313-macosx_12_0_arm64.whl
5c4bbddc266e3f1cee3d8decec0ec469  scipy-1.15.0-cp313-cp313-macosx_14_0_arm64.whl
6bd15d2186dd457abd8bba705ee7f29d  scipy-1.15.0-cp313-cp313-macosx_14_0_x86_64.whl
fbacc513cfc156b60d1e430b64ea4e91  scipy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6da8ae141a774b75219efcfc4988e32f  scipy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b3c9d0a585388a9da6d09895b494a031  scipy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl
ad854ba52863d6dd3cbcfb3e666c1a67  scipy-1.15.0-cp313-cp313-win_amd64.whl
df35c7040a9b0a12f7bf714f598be966  scipy-1.15.0-cp313-cp313t-macosx_10_13_x86_64.whl
07dd455bfd9f3f191503d704b4cad021  scipy-1.15.0-cp313-cp313t-macosx_12_0_arm64.whl
a211a76d9467a354da80042444084323  scipy-1.15.0-cp313-cp313t-macosx_14_0_arm64.whl
07e497e948451e9ad9a696ac914ccfbb  scipy-1.15.0-cp313-cp313t-macosx_14_0_x86_64.whl
cf9bf0bb6c8466f3051ea3bccca4260b  scipy-1.15.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e718c9476837cae9f89b296e8a5ebdf1  scipy-1.15.0-cp313-cp313t-musllinux_1_2_x86_64.whl
faf7f6251da3d587febba56d03ce7376  scipy-1.15.0-cp313-cp313t-win_amd64.whl

SHA256

34a2e33ef4081bacd3331001e258ff86fc2a221977b0f283446a20b133024fdb  Changelog
2cbc86846ffed466bf1d5a5add58a5c69e041252993395acea17632570d2f430  README.txt
aeac60d3562a7bf2f35549bdfdb6b1751c50590f55ce7322b4b2fc821dc27fca  scipy-1.15.0-cp310-cp310-macosx_10_13_x86_64.whl
5abbdc6ede5c5fed7910cf406a948e2c0869231c0db091593a6b2fa78be77e5d  scipy-1.15.0-cp310-cp310-macosx_12_0_arm64.whl
eb1533c59f0ec6c55871206f15a5c72d1fae7ad3c0a8ca33ca88f7c309bbbf8c  scipy-1.15.0-cp310-cp310-macosx_14_0_arm64.whl
de112c2dae53107cfeaf65101419662ac0a54e9a088c17958b51c95dac5de56d  scipy-1.15.0-cp310-cp310-macosx_14_0_x86_64.whl
2240e1fd0782e62e1aacdc7234212ee271d810f67e9cd3b8d521003a82603ef8  scipy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d35aef233b098e4de88b1eac29f0df378278e7e250a915766786b773309137c4  scipy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1b29e4fc02e155a5fd1165f1e6a73edfdd110470736b0f48bcbe48083f0eee37  scipy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl
0e5b34f8894f9904cc578008d1a9467829c1817e9f9cb45e6d6eeb61d2ab7731  scipy-1.15.0-cp310-cp310-win_amd64.whl
46e91b5b16909ff79224b56e19cbad65ca500b3afda69225820aa3afbf9ec020  scipy-1.15.0-cp311-cp311-macosx_10_13_x86_64.whl
82bff2eb01ccf7cea8b6ee5274c2dbeadfdac97919da308ee6d8e5bcbe846443  scipy-1.15.0-cp311-cp311-macosx_12_0_arm64.whl
9c8254fe21dd2c6c8f7757035ec0c31daecf3bb3cffd93bc1ca661b731d28136  scipy-1.15.0-cp311-cp311-macosx_14_0_arm64.whl
c9624eeae79b18cab1a31944b5ef87aa14b125d6ab69b71db22f0dbd962caf1e  scipy-1.15.0-cp311-cp311-macosx_14_0_x86_64.whl
d13bbc0658c11f3d19df4138336e4bce2c4fbd78c2755be4bf7b8e235481557f  scipy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
bdca4c7bb8dc41307e5f39e9e5d19c707d8e20a29845e7533b3bb20a9d4ccba0  scipy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
6f376d7c767731477bac25a85d0118efdc94a572c6b60decb1ee48bf2391a73b  scipy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl
61513b989ee8d5218fbeb178b2d51534ecaddba050db949ae99eeb3d12f6825d  scipy-1.15.0-cp311-cp311-win_amd64.whl
5beb0a2200372b7416ec73fdae94fe81a6e85e44eb49c35a11ac356d2b8eccc6  scipy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl
fde0f3104dfa1dfbc1f230f65506532d0558d43188789eaf68f97e106249a913  scipy-1.15.0-cp312-cp312-macosx_12_0_arm64.whl
35c68f7044b4e7ad73a3e68e513dda946989e523df9b062bd3cf401a1a882192  scipy-1.15.0-cp312-cp312-macosx_14_0_arm64.whl
52475011be29dfcbecc3dfe3060e471ac5155d72e9233e8d5616b84e2b542054  scipy-1.15.0-cp312-cp312-macosx_14_0_x86_64.whl
5972e3f96f7dda4fd3bb85906a17338e65eaddfe47f750e240f22b331c08858e  scipy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
fe00169cf875bed0b3c40e4da45b57037dc21d7c7bf0c85ed75f210c281488f1  scipy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
161f80a98047c219c257bf5ce1777c574bde36b9d962a46b20d0d7e531f86863  scipy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl
327163ad73e54541a675240708244644294cb0a65cca420c9c79baeb9648e479  scipy-1.15.0-cp312-cp312-win_amd64.whl
0fcb16eb04d84670722ce8d93b05257df471704c913cb0ff9dc5a1c31d1e9422  scipy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl
767e8cf6562931f8312f4faa7ddea412cb783d8df49e62c44d00d89f41f9bbe8  scipy-1.15.0-cp313-cp313-macosx_12_0_arm64.whl
37ce9394cdcd7c5f437583fc6ef91bd290014993900643fdfc7af9b052d1613b  scipy-1.15.0-cp313-cp313-macosx_14_0_arm64.whl
6d26f17c64abd6c6c2dfb39920f61518cc9e213d034b45b2380e32ba78fde4c0  scipy-1.15.0-cp313-cp313-macosx_14_0_x86_64.whl
1e2448acd79c6374583581a1ded32ac71a00c2b9c62dfa87a40e1dd2520be111  scipy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
36be480e512d38db67f377add5b759fb117edd987f4791cdf58e59b26962bee4  scipy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
ccb6248a9987193fe74363a2d73b93bc2c546e0728bd786050b7aef6e17db03c  scipy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl
952d2e9eaa787f0a9e95b6e85da3654791b57a156c3e6609e65cc5176ccfe6f2  scipy-1.15.0-cp313-cp313-win_amd64.whl
b1432102254b6dc7766d081fa92df87832ac25ff0b3d3a940f37276e63eb74ff  scipy-1.15.0-cp313-cp313t-macosx_10_13_x86_64.whl
4e08c6a36f46abaedf765dd2dfcd3698fa4bd7e311a9abb2d80e33d9b2d72c34  scipy-1.15.0-cp313-cp313t-macosx_12_0_arm64.whl
ec915cd26d76f6fc7ae8522f74f5b2accf39546f341c771bb2297f3871934a52  scipy-1.15.0-cp313-cp313t-macosx_14_0_arm64.whl
351899dd2a801edd3691622172bc8ea01064b1cada794f8641b89a7dc5418db6  scipy-1.15.0-cp313-cp313t-macosx_14_0_x86_64.whl
e9baff912ea4f78a543d183ed6f5b3bea9784509b948227daaf6f10727a0e2e5  scipy-1.15.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cd9d9198a7fd9a77f0eb5105ea9734df26f41faeb2a88a0e62e5245506f7b6df  scipy-1.15.0-cp313-cp313t-musllinux_1_2_x86_64.whl
129f899ed275c0515d553b8d31696924e2ca87d1972421e46c376b9eb87de3d2  scipy-1.15.0-cp313-cp313t-win_amd64.whl
5 Likes