SciPy 1.15.0 Release Notes#

Note

SciPy 1.15.0 is not released yet!

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 from spmatrix 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.

New features#

scipy.differentiate introduction#

The new scipy.differentiate sub-package contains functions for accurate estimation of derivatives of black box 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.linalg improvements#

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#

scipy.stats improvements#

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 Thread Safety in SciPy 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:

Deprecated features#

Expired Deprecations#

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#

Authors#

  • endolith (4)

  • h-vetinari (61)

  • 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 (85)

  • Michael Bratsch (2) +

  • Matthew Brett (1)

  • Keith Briggs (1) +

  • Olly Britton (145) +

  • Dietrich Brunn (10)

  • Clemens Brunner (1)

  • Evgeni Burovski (181)

  • 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 (105)

  • Rohit Goswami (62)

  • Anil Gurses (1) +

  • Oscar Gustafsson (1) +

  • Matt Haberland (362)

  • Matt Hall (1) +

  • Joren Hammudoglu (2) +

  • 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 (10)

  • 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)

  • 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 (126)

  • redha2404 (2) +

  • Ritvik1sharma (1) +

  • Heshy Roskes (1)

  • Pamphile Roy (34)

  • Mikhail Ryazanov (1) +

  • Sina Saber (1) +

  • Atsushi Sakai (1)

  • Clemens Schmid (1) +

  • Daniel Schmitz (15)

  • Moritz Schreiber (1) +

  • Dan Schult (87)

  • Searchingdays (1) +

  • Matias Senger (1) +

  • Scott Shambaugh (1)

  • Zhida Shang (1) +

  • Sheila-nk (4)

  • Romain Simon (2) +

  • Gagandeep Singh (31)

  • Albert Steppi (35)

  • 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 147 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.

Issues closed for 1.15.0#

  • #2011: DEP: spatial: ‘sokalmichener’ and ‘rogerstanimoto’ distances…

  • #2035: ENH: Add methods to compute derivatives (Trac #1510)

  • #2116: Cholesky decomposition - are elements in the ‘other’ triangle…

  • #2162: MAINT: signal: lombscargle is unclear about normalisation…

  • #2509: distributions cdf, sf evaluation in the wrong tail

  • #4096: DOC: special: Clarify Mathieu function documentation

  • #4275: BUG: linalg.interpolative: svd integer overflow

  • #4517: MAINT: special.hankel2: (0, 0) delivers (nan+nan*j) instead…

  • #4538: alternative parametrizations of univariate distributions

  • #4708: ENH: linalg.funm: a possible speed-up

  • #4952: DOC: stats: improvement suggestions for tutorial

  • #5818: Clarify definition of preconditioner for sparse linear system…

  • #6528: ENH: stats: Add Normal-inverse-gamma distribution

  • #7099: ENH: stats.fisher_exact: support tables larger than 2x2

  • #7242: ENH: implement at least one good robust scalar root-finding algorithm…

  • #8053: Random variate distribution random_state set after init does…

  • #8307: scipy.sparse.linalg.eigs gives incorrect largest magnitude eigenvalue

  • #8344: BUG: special.nctdtr: incorrect results

  • #8362: a function to convert a matrix into diagonal ordered form (ab)…

  • #8787: BUG: signal.lombscargle: raises ZeroDivisionError

  • #8888: MAINT: special.gegenbauer: case of alpha = 0 not handled

  • #9249: BUG: linalg: test_interpolative::TestInterpolativeDecomposition::test_id

  • #9321: Easy access to scipy.stat.<distributionName> frozen distribution…

  • #9509: BUG: special: test_kolmogorov fails on 32-bit platforms

  • #10106: Slow random variate generation in scipy.stats

  • #10328: DOC: stats: documentation is not distribution-specific

  • #10364: Add Double Pareto-Lognormal Distribution

  • #10374: ENH: make ARPACK-NG deterministic

  • #11341: MAINT: constants: disparate electric permittivity constants

  • #11465: Numerical stability of distributions: Add log_p as argument to…

  • #11649: trust-constr error when attempting to keep bound constrained…

  • #12019: scipy.linalg.orthogonal_procrustes

  • #12282: API: stats.chisquare: must observed and expected frequencies…

  • #12367: Allow whitespace alignment of tables of numbers?

  • #12593: BUG: linalg: estimate_rank is quite unreliable

  • #12651: BUG: cluster: fcluster assigning all points to a single cluster…

  • #12662: Complex numpy exponentiation, nan, and/or inf causes segfault…

  • #12895: BUG: special.riccati_yn: Definition missing minus sign

  • #13019: TST, MAINT: test_maxiter_worsening on Python 3.9 + Linux ARM64

  • #13137: BUG: linalg.schur: bug sorting complex eigenvalues in real form

  • #13504: TST: stats: test distribution support method behavior for…

  • #13643: BUG: signal.sepfir2d: fails with complex input on Windows

  • #13986: Distributions cannot be freed by garbage collector due to self-references

  • #14304: Jaccard distance greater than 1 if elements are strings

  • #14467: DOC: constants: explain 0.0 uncertainty

  • #14582: BUG: special.spherical_jn: Negative arguments lead to nans

  • #14788: DOC: linalg.hankel: clarify that first entry of r is…

  • #14895: ENH: All statistical distributions in scipy.stats should have…

  • #14945: BUG: Overflows/NaNs cause segfault in integrate.quad on certain…

  • #15012: ENH: linalg.cholesky: document that user is responsible…

  • #15016: BUG: linalg.schur: sorting by imaginary part does not work for…

  • #15021: scipy.linalg.qr with pivoting=True should return P as (N,N) permutation…

  • #15533: BUG: test failure in test_x0_equals_Mb with bicgstab

  • #15582: BUG: special.ncfdtr(dfn, dfd, nc, f) and stats.ncf.cdf(x,

  • #15620: BUG: signal.resample_poly returns an array consisting only of…

  • #15888: BUG: linprog, with highs is killed by the OOM killer when called…

  • #15896: Compiled code coverage with --gcov doesn’t work with Meson

  • #15915: ENH: optimize: object-oriented interface to HiGHS

  • #16494: MAINT: Speed up some slow tests

  • #16531: DOC: Warnings/error in docstring examples.

  • #16700: BUG: segfault on i386 in special test_kolmogorov.py TestSmirnovp

  • #17059: ENH: Robust and fast numerical derivative for error propagation

  • #17075: Test failures with Intel compilers

  • #17136: BUG: logm sometimes raises ZeroDivisionError for matrices with…

  • #17307: BUG: stats: frozen distribution domain error produced too late

  • #17344: ENH: scipy.linalg.circulant should allow batching

  • #17385: BUG: TestOnenormest.test_onenormest_table_6_t_1 is failing…

  • #17404: DOC: comparison of optimizers in optimization guide

  • #17494: MAINT: HiGHS build flag cleanup

  • #17571: ENH: Add units to scipy.constants description

  • #17905: ENH: Add softplus implementation

  • #18014: Potential use-after-free bug in fcn_callback (Static Analyzer…

  • #18250: BUG: complex256 type created by entering complex128 into…

  • #18295: BUG: special: Loss of precision in logsumexp

  • #18367: RFC: Get rid of linalg.interpolative Fortran code

  • #18409: ENH: extensions of factorial{,2,k} for complex domains, recurrences,…

  • #18445: ENH: add a callback feature to minimize_scalar and root_scalar

  • #18879: BUG: integrate.quad_vec: Fatal error when using workers

  • #18880: TST: test_expm_multiply_dtype failure on aarch64 (flaky test)

  • #18882: BUG: minimize does not satisfy nonlinear constraint even if keep_feasible=True

  • #18907: BUG: presolve option in milp causing feasible problem…

  • #18909: BUG: Cython3 linalg import order bug

  • #18945: BUG: circe-ci SVD-LOBPCG benchmarks do not check accuracy so…

  • #19042: DOC: sparse: BSR does not support slicing, __getitem__ not…

  • #19071: BUG: scipy.special.gammasgn implementation & docs inconsistent…

  • #19207: BUG: sparse.linalg: LinearOperator dtype determination broken

  • #19223: BUG: io: scipy.io.loadmat error message recommend use of function…

  • #19355: MAINT: lobpcg: add unit tests for accuracy matching benchmark…

  • #19405: ENH: sparse.csr_array: keep axis functionality in getnnz()

  • #19446: BUG: In test_b_orthonormalize, cannot parameterize Vdtype, Bdtype,…

  • #19524: BUG: deepcopy on stats.rvs breaks seed / random generation.

  • #19634: ENH: Dedicated Function for Envelope Extraction

  • #19759: BUG: Bad result for stats.randint.pmf (edge case)

  • #19791: DOC: linalg.schur: unclear signature for sort callable when…

  • #19907: DEP: extend deprecation of private namespaces also to fortran-generated…

  • #20026: ENH: ndimage: 1D rank filter speed up

  • #20048: BUG: stats.rv_discrete.ppf: infinite loop in default implementation

  • #20077: DEP: linalg: deprecate kron

  • #20155: DOC: optimize.curve_fit: Inconsistent naming convention…

  • #20196: MAINT: Audit usage of cython memoryviews, add const to allow…

  • #20207: ENH: sparse: Validate dtype on sparse array/matrix creation

  • #20239: DOC: Sparse arrays: todense() does not return numpy.matrix

  • #20240: ENH: multiple small improvements to scipy.stats.circmean

  • #20288: ENH: Poisson disk sampling for arbitrary bounds

  • #20370: DOC: ndimage.convolve: clarify origin parameter description

  • #20389: BUG: sparse.hstack does not respect dtype of {indptr,indices}

  • #20452: BUG:linalg:interpolative: Crashing if k is requested too high…

  • #20552: DOC/DEV/MAINT: review distributing section of core-dev guide

  • #20574: MAINT, BENCH: would be good to be able to run benchmarks with…

  • #20602: MAINT/STY: fix UP031, UP032 linter errors

  • #20609: BUG:linalg:interpolative: Inputs are not mapped to compatible…

  • #20635: DOC: Titles of long function names in API Reference truncated…

  • #20638: DOC: Specify cut-off frequency in firwin as half-ampltude vs…

  • #20693: BUG: stats.noncentral_t: incorrect pdf values

  • #20710: ENH: special.rel_entr: avoid premature overflow

  • #20728: BUG: sparse.linalg: Segfault in arpack with ifx

  • #20733: DOC: stats.mannwhitneyu: reversed options for alternative

  • #20739: DOC/DEV: update commit message guidance

  • #20740: BLD/DEV: special: build warnings

  • #20761: ENH: stats.cauchy: improve cdf and quantile accuracy in tail

  • #20763: BUG: sparse.csgraph, array types: some functions should expect…

  • #20813: BUG: optimize.nnls sometimes fails when input A is a…

  • #20821: BUG: stats.levy_stable.rvs: “S0”-parameterization ignored

  • #20844: DOC: update testing docs for alternative backends

  • #20879: MAINT: clean up sparse._sputils.getdtype

  • #20893: DOC/DEV: Developer docs should mention Accelerate support

  • #20904: BUG: sparse.csgraph.dijkstra errors on inputs with int64 or no…

  • #20910: BUG: positional argument DeprecationWarning message is overly…

  • #20931: MAINT: Premature setting of attributes in HBInfo in scipy.io._harwell_boei

  • #20957: TST, MAINT: array API GPU test failures

  • #20963: TST: special.tests.test_support_alternative_backends: failure…

  • #20984: BUG: scipy.optimize.nnls 1.11.4 version has better performance…

  • #20991: BUG: special.pro_rad1 returns ‘nan’ for any combination of…

  • #20994: BUG: spatial.distance.cosine with complex arguments raises…

  • #21009: BUG: Floating point exception when passing the invalid argument…

  • #21010: BUG: Segmentation fault when passing invalid arguments to some…

  • #21011: BUG: Double free or corruption when passing invalid arguments…

  • #21016: BUG: Indexing broken for sparse arrays

  • #21030: DOC, DEV: release notes gh_lists touchups

  • #21044: RFC: quo vadis, xp_assert_* infrastructure?

  • #21045: BUG: scipy/optimize/tests/test_hessian_update_strategy.py::TestHessianUpdateSt

  • #21057: BUG: loong64 architecture fails TestQuad.test_complex

  • #21059: TST, MAINT: TestHyp2f1.test_region5 tol issue with gcc 14.1.0

  • #21078: BUG: linalg.expm: slower by a factor of ~4 in scipy>1.13

  • #21088: DOC: optimize.InverseJacobian: document or deprecate?

  • #21099: DOC: incorrect section ordering for classes

  • #21106: BUG: stats.combine_pvalues gives result with wrong dimensionality…

  • #21140: BUG: optimize.nnls: re-implementation not robust

  • #21144: BUG: sparse: Two new XSLOW test failures

  • #21145: BUG: dev.py build –debug doesn’t produce a debug build

  • #21148: BUG: scipy.optimize.root_scalar pass in an array instead of float

  • #21152: BUG: stats.bartlett: returned statistic can be negative…

  • #21158: RFC: spatial: review calculation formula for Jaccard distance…

  • #21166: ENH: linalg.null_space: expose lapack_driver and check_finite

  • #21174: BUG: special tests failing on main when CuPy is installed with…

  • #21178: DOC: optimize.root_scalar: arguments incorrectly marked…

  • #21181: MAINT: spatial: weighted chebyshev distance revisited

  • #21187: BUG: spatial.distance: kulczynski1 returns similarity rather…

  • #21192: BUG: stats.differential_entropy: incorrect results with…

  • #21193: BUG: optimize: Hessian update strategy fails on nested minimize…

  • #21208: RFC: Should mutable default arguments be forbidden by the linter?

  • #21212: DOC: doc build failing in CI

  • #21217: BUG: SciPy won’t pick the correct BLAS when running the test…

  • #21227: BUG: stats/fft/differentiate/optimize: test suite failures with…

  • #21239: ENH: Add a Python level lapack wrapper for DSYTRS

  • #21241: DOC: add sphinx-copybutton to the documentation

  • #21248: BUG: ValueError: x0 violates bound constraints in minimize

  • #21256: BUG: io.loadmat: failure with large file due to address position…

  • #21266: DOC: CosineMixture function in go_benchmark_functions is wrong

  • #21275: CI: wheel builds for Python 3.13 are failing

  • #21286: BUG: Delaunay/qhull segfault on self-pass

  • #21292: TST: ndimage: GPU test failures

  • #21296: DOC: optimize.root: fix docs for inner_\* parameters

  • #21300: BUG: integrate.simpson: x param is keyword only

  • #21311: BUG: special.chdtr: torch failures

  • #21351: ENH: spatial: Rotation: add split to break apart object with…

  • #21357: DOC: signal.hilbert: Terminology issue

  • #21366: DOC: stats.f_oneway: use attributes instead of tuple unpacking…

  • #21369: BUG: stats.tukeylambda: support(lam) is incorrect when lam

  • #21379: BUG: spatial: Voronoi diagram missing ridges

  • #21383: BUG: stats.sobol_indices: in-place modification of func

  • #21394: DEV: jupytext notebooks break caching of doc builds

  • #21405: MAINT: a few potential minor cleanups

  • #21421: DOC/DEV: direct to building guide from quickstart guide

  • #21439: DOC/DEV: replace mambaforge with miniforge

  • #21447: DEV/MAINT: Allow unicode characters ± and in source…

  • #21452: DOC: signal.firls: reference unavailable

  • #21453: ENH: Add support for Xi Correlation in scipy

  • #21460: MAINT, DOC: make dist pipefail issue

  • #21461: BUG: special.pro_rad2: incorrect results since translation…

  • #21486: MAINT: ndimage test failures with CuPy

  • #21504: DOC: add note about args/kwargs to description of callable…

  • #21507: BUG: fft.fft: real-valued array-api-strict inputs fail

  • #21510: DOC: signal.freqz: problem with fs

  • #21513: TST, MAINT: test_differentiate torch GPU failures

  • #21519: BUG: optimize.minimize: method='Powell' gives array not scalar

  • #21534: TST, MAINT: test_matrix_input failing

  • #21556: DOC: Lack of table of contents in cluster

  • #21566: DOC: stats.pearsonr: error in notes of API reference

  • #21571: DOC: interpolate.interp1d: clarify status and alternatives

  • #21576: DOC: building: specify .ps1 for windows example

  • #21582: BUG: Squeezed output from batched scipy.linalg.det

  • #21583: BUG: optimize: test failures in scikit-learn following LBFGS…

  • #21584: BUG: linalg.expm: nightly inaccurate for complex64

  • #21596: MAINT: Update constants to CODATA 2022 recommendation

  • #21610: BUG: special.logsumexp: imaginary component exceeds (-pi, pi]

  • #21615: BUG: Invalid treatment of ellipsis in indexing of sparse matrices

  • #21627: DOC: optimize.root: outdated naming of fprime in method=’hybr’

  • #21630: BUG: optimize.nnls: precision problems

  • #21641: BUG: io.mmwrite: auto-appending of .mtx extension

  • #21660: BLD, MAINT: linker warnings with newer AppleClang/ld

  • #21661: BUG: fft.fht: should set u.imag[-1] = 0 only when n is…

  • #21670: BUG: ndimage: _normalize_sequence fails on 0d array

  • #21671: BUG: signal.ShortTimeFFT: inverse tranform error with multichannel…

  • #21677: BLD: build warnings from quadpack

  • #21696: MAINT: lombscargle numerical backward-compat

  • #21704: DOC: stats.bootstrap: clarify meaning of paired argument

  • #21709: BUG: logsumexp returning incorrect results in Scipy 1.15.0.dev0

  • #21724: MAINT: signal deprecation cleanups

  • #21733: BUG: cluster: incorrect type of default value of dist in…

  • #21738: BUG: “ERROR: Dependency “OpenBLAS” not found” in macOS tests…

  • #21745: TST, MAINT: array API GPU test fails in test_cubature.py

  • #21747: BUG: boolean indexing of sparse arrays broken on main

  • #21758: BENCH/DEV: Add conda-build to environment.yml

  • #21759: DEP: remove special.btdtr and special.btdtri

  • #21760: BUG: failure in scipy/optimize/tests/test_minimize_constrained.py::test_gh1164

  • #21769: BENCH: Warnings from linprog

  • #21772: BUG: optimize.curve_fit with nan_policy="omit" fails…

  • #21775: BUG: sparse matrix-vector multiplication fails with flattened…

  • #21788: BUG: stats: qmc.Sobol raises ValueError in multi-threading

  • #21791: BUG: sparse: setdiag broken when not entire diagonal belongs…

  • #21807: BUG: signal: Confusing error when giving an invalid mode to correlation_lags

  • #21810: RFC: special: Behavior of gamma function and related functions…

  • #21814: TST: interpolate: tests on griddata are not parametrized

  • #21817: QUERY: optimize.isotonic_regression: cannot replicate results…

  • #21820: BUG: stats: New XSLOW failures in test_fit.py::TestFit

  • #21829: BLD: accelerate detection with GNU toolchain on ARM mac

  • #21830: BLD: threads.h with MacOS 14.x ARM + gcc 14.2.0

  • #21833: SPEC 7 Transition Tracker

  • #21837: BUG: linalg.svd: Segmentation Fault, Integer overflow in LAPACK…

  • #21838: ENH: sparse: revisit default index dtype selection in sparray…

  • #21855: TST, MAINT: torch + GPU failures for test_create_diagonal

  • #21885: BUG: interpolate/tests/test_interpnd.py::TestLinearNDInterpolation::test_threa

  • #21900: BUG: stats: New XSLOW test failure in test_sampling.py

  • #21908: BUG: integrate.trapezoid: broadcasting failure after #21524

  • #21927: TST: failures in test_riemann_zeta_complex on windows in…

  • #21934: BUG: Intel oneAPI tests / py3.12, dev.py: meson.build:1:0:

  • #21940: DOC, REL: 1.15.0 author mappings

  • #21946: BUG: several failing tests in interpolate on macOS15

  • #21949: BUG: stats: XSLOW test failure in scipy.stats.tests.test_fit::TestFit

  • #21952: DOC: stats.goodness_of_fit: improve examples

  • #21957: CI: failure for “Oldest GCC …” Linux CI job (related to pre-release…

  • #21963: DOC: Deprecation warning in sphinx when used with Python…

  • #21988: refguide_check currently failing

  • #22005: TST: TestJacobian::test_attrs tol bump?

Pull requests for 1.15.0#

  • #11345: MAINT: constants: revise way ‘exact’ values are recomputed

  • #12071: ENH: linalg: update _procrustes.py to handle complex matrices…

  • #12824: ENH: linalg.solve: detect and exploit matrix structure

  • #15993: TST: sparse.linalg: Add iterative step test of solvers with LU…

  • #16088: DOC: signal: Make _filter_design.py plot labels consistent

  • #16090: ENH: vectorize companion matrix function

  • #16467: ENH: sparse: add nonzero functionality to min, max, argmin,

  • #16877: MAINT: remove un-necessary all-true array.

  • #17318: ENH: signal: Add functionality of Complex Chirp waveform

  • #18605: ENH: special: add softplus

  • #18979: DOC: Add units to scipy.constants description

  • #19058: DOC:special/signal: Add examples for berp_zeros and band_stop_obj

  • #19145: ENH: stats: add Landau distribution

  • #19209: BUG: sparse.linalg: fix LinearOperator dtype determination

  • #19255: ENH: Use highspy in linprog

  • #19361: BENCH: sparse.linalg: check accuracy in SVD-LOBPCG benchmarks

  • #19475: ENH: stats.lmoment: add function to calculate sample L-moments

  • #19764: MAINT: stats: fix axis_nan_policy decorator non-broadcastable…

  • #19970: ENH: interpolate: replicate splrep and splprep in Python

  • #19988: MAINT: unify factorial implementations

  • #19989: MAINT: special: factorial clean-ups

  • #20040: DOC: optimize: add comparison of optimizers to guide

  • #20058: DOC:signal: Suggest remedies for slow speed in resample when…

  • #20097: ENH: signal: Compute envelope of a real- or complex-valued signal

  • #20194: BUG: linalg.cossin: fix for nonsymmetric cases

  • #20242: DOC: sparse: Correct todense documentation

  • #20303: DOC: stats: Convert sampling tutorial to MyST-md

  • #20408: DOC: ndimage.convolve: modify origin param description

  • #20496: DOC: stats: added Raises section to a few functions

  • #20514: TST/BUG: linalg.expm: empty array support

  • #20517: DOC: sparse.linalg: updated preconditioner doc for iterative…

  • #20519: MAINT: signal: further refactor spline filters

  • #20520: BUG: linalg.polar: empty array support

  • #20539: ENH: special: Overhaul of Legendre functions

  • #20543: ENH: ndimage: log(n) implementation for 1D rank filter

  • #20558: ENH: linalg: Cythonize id_dist FORTRAN code

  • #20589: TST: optimize.linprog/milp: add tests for various bug reports

  • #20671: ENH: interpolate: fix concurrency issues throughout

  • #20695: MAINT: special.ndtr: adjust implementation to more closely match…

  • #20701: TST/MAINT: special: test with CuPy, make some CUDA fixes

  • #20708: ENH: differentiate.hessian: use jacobian to compute…

  • #20713: ENH: optimize.HessianUpdateStrategy: add __matmul__

  • #20719: MAINT: sparse: fix __init__ func sig to allow maxprint

  • #20743: ENH: stats._xp_mean, an array API compatible mean with…

  • #20754: ENH: sparse: add dtype validation in __init__ and astype

  • #20759: MAINT: sparse.linalg: adjust norm, eigs, and lsqr

  • #20766: MAINT: stats: minor numerical improvements to circular statistics

  • #20767: ENH: stats.qmc: add bounds parameters to PoissonDisk

  • #20771: ENH: stats.ttest_ind: add array API support

  • #20773: BUG: sparse.csgraph, array types: support non-zero fill_value...

  • #20785: ENH: stats.nct.pdf: increase range in left tail using boost

  • #20793: ENH: stats: end-to-end array-API support for NHSTs with beta…

  • #20794: ENH: stats: add array API support for directional_stats

  • #20800: ENH: optimize.elementwise: vectorized scalar optimization and…

  • #20809: ENH: ndimage: extend ndimage filter axes support to correlate…

  • #20811: ENH: ndimage: extend filter axes support to remaining filters…

  • #20816: ENH: special.rel_entr: Avoid overflow before computing…

  • #20822: CI: Add Linux workflow to test on free-threaded Python builds

  • #20827: REL: set version to 1.15.0.dev0

  • #20829: MAINT: special: fix typo in four_gammas used by hyp2f1

  • #20830: DOC: optimize.differential_evolution: change convergence…

  • #20833: BUG: interpolate: make BSpline.integrate always return an array

  • #20834: ENH: integrate.nsum: elementwise evaluation of finite or infinite…

  • #20837: MAINT: linalg: add const to Cython function signatures

  • #20843: DOC/DEV: add docs for enabling interactive examples

  • #20846: DOC: Wrap long titles in docs pages

  • #20849: DOC/DEV: mention -b option in contributor guide on testing

  • #20855: TST: add additional margin to fail_slows

  • #20856: TYP: _lib.doccer: add type annotations

  • #20857: ENH: sparse: add axis parameter to count_nonzero method

  • #20859: DEP: signal: remove cmplx_sort

  • #20862: MAINT: special: Add kokkos mdspan

  • #20864: DEP: integrate: remove quadrature and romberg

  • #20865: DEP: signal: remove wavelet functions

  • #20866: DEP: stats: remove rvs_ratio_uniforms

  • #20867: DEP: integrate.cumulative_trapezoid: raise ValueError

  • #20868: DEP: interpolate: deprecate complex dtypes in {Akima1D, Pchip}Interpolator

  • #20869: DEP: special.factorial: raise error for non-integer scalars and…

  • #20872: MAINT: interpolate: add const to Cython function signatures

  • #20873: MAINT: sparse: add const to Cython function signatures

  • #20874: MAINT: spatial: add const to Cython function signatures

  • #20875: BLD/DEV: special: Fix warning due to mixed initializers

  • #20876: DOC: use intersphinx_registry for easier intersphinx mapping…

  • #20882: CI: Add workflow to build and upload free-threaded wheels

  • #20883: ENH: stats: rewrite ttest_rel in terms of ttest_1samp

  • #20884: ENH: stats: end-to-end array-API support for NHSTs with Student’s…

  • #20885: BUG: fix incorrect intersphinx-registry entry in environment.yml

  • #20886: CI/DEV: fix Node.js 16 warnings by bumping actions

  • #20887: MAINT: signal: add const to Cython function signatures

  • #20889: MAINT: sparse: Align matmul tests in test_base.py for spmatrix…

  • #20891: MAINT: stats: add const to Cython function signatures

  • #20895: TST: sparse: Finish allowing test_base.py to easily switch…

  • #20897: DOC: Fix bug with parallel doc build

  • #20898: MAINT: sparse: clean up _sputils.getdtype docstring

  • #20900: ENH: stats: add array API support to combine_pvalues

  • #20906: DOC: linalg.schur: update doc for the argument sort

  • #20907: CI: Make sure nightly free-threaded wheels are tested with GIL…

  • #20912: DOC: Add more information about how to use Accelerate

  • #20913: BUG: sparse.csgraph.dijkstra: fix dtype and shape bugs

  • #20915: DOC: integrate.quad_vec: Add example when using workers

  • #20916: DOC: Mention that sparse.bsr_array does not support slicing.

  • #20922: BUG: stats.mstats: fix mstats.{ttest_rel, ttest_1samp} when…

  • #20924: BUG: _lib: ensure reasonable length _deprecate_positional_args

  • #20926: DOC: sparse: Add migration guide for converting code from spmatrix…

  • #20928: ENH: optimize._differentiate: add array API support

  • #20932: MAINT: io: fix premature setting of attributes in HBInfo

  • #20934: TST: stats.combine_pvalues: parameterise tests and update…

  • #20941: DOC/MAINT: single to double backticks to remove improper linking

  • #20942: CI: Use Cython nightly wheel on free-threaded CI

  • #20944: DOC: update distributing section

  • #20946: ENH: stats.gmean: add array API support

  • #20951: CI: Add MacOS to free-threaded wheel release CI

  • #20954: MAINT: stats.hmean/pmean: simplify prior to array API conversion

  • #20955: DOC: Single to double backticks for non-targets

  • #20962: DOC/MAINT: stats.gmean/gstd/hmean/pmean: document/treat invalid…

  • #20965: ENH: stats.tmean: add array API support

  • #20968: MAINT: fix some misspellings

  • #20969: DOC: linalg: add # may vary to a linalg.schur example

  • #20971: TST: special: use standard_normal to generate arguments in…

  • #20974: ENH: stats.combine_pvalues: add native axis support

  • #20975: DOC: single to double backticks

  • #20976: BUG: Update scipy-optimise directive in view of new default role

  • #20977: DOC: More single to double backtick

  • #20980: CI, MAINT: test_plot_iv NumPy 2 shim

  • #20985: BLD: Add build only CI workflow for Windows using MSVC + ifx…

  • #20986: DEV: gh_lists: single -> double backticks

  • #20987: DOC/DEV: update commit message guidance

  • #20989: ENH: stats.chi2_contingency: add method parameter

  • #20995: CI: test cp313-dev

  • #20998: MAINT: signal: fix code comment typo

  • #21003: MAINT: odr: fix a refcounting issue in __odrpack.c

  • #21004: DOC: stats: Convert chisquare example to notebook

  • #21005: CI: one invocation for all tests in array API job

  • #21017: MAINT: smoke-docs: add special/_precompute to –ignore list,…

  • #21018: MAINT: sparse: better error message on matmul mismatch

  • #21021: ENH:MAINT:optimize: Re-rewrite nnls in Cython

  • #21022: BUG: sparse: Fix advanced indexing using both slice and array

  • #21023: DEV: lint: enforce newlines at end of files

  • #21025: API: signal: rename sosfreqz to freqz_sos

  • #21028: ENH: stats.tmin/tmax: add array API support

  • #21029: MAINT/STY: Fix UP031 AND UP032 linter errors

  • #21032: DOC/DEV: update vendored-code page

  • #21033: DOC: interpolate: discuss linear interpolation with extrapolation

  • #21034: ENH: stats.xp_var: array-API compatible variance with scipy.stats

  • #21035: ENH: stats.hmean/pmean: add array API support

  • #21036: ENH: stats.tvar/tstd/tsem: add array API support

  • #21037: MAINT: forward port 1.14.0 relnotes

  • #21041: ENH: differentiate: add sub-package for array-API compatible…

  • #21042: DOC: stats: Move biomedical examples to notebooks

  • #21047: TST: optimize: fix exception test on PyPy3.10

  • #21050: ENH: stats.Normal: add new continuous distribution infrastructure…

  • #21051: BUG: interpolate.LinearNDInterpolator: fix for precomputed triangulation

  • #21063: MAINT: gcc-14 test_region5 tol bump

  • #21068: ENH: stats.zmap/zscore/gzscore: add array API…

  • #21076: ENH: stats.differential_entropy: add array API support

  • #21081: DOC: Add default options for COBYQA

  • #21083: MAINT: simplify _integrate_pdf

  • #21085: DEP: spatial: deprecate complex input to cosine and correlation

  • #21086: DOC: spatial: Fix typo in seuclidean docstring

  • #21087: DOC: optimize: remove inadvertent block quote indentation

  • #21089: ENH: stats.alexandergovern: vectorize calculation for n-D…

  • #21094: DOC: sparse.linalg.gcrotmk: fix backticks and add maxiter

  • #21096: DOC: sparse.linalg.gcrotmk: add missing backticks

  • #21097: ENH: stats.boxcox_llf: add array API support

  • #21098: DEV: don’t add sparse label for submodules

  • #21101: DOC: special.ellipj: fix order of parameters in docstring

  • #21103: MAINT: itemsize pybind cleanup

  • #21109: MAINT: stats.combine_pvalues: fix native axis support…

  • #21110: ENH:sparse.linalg: Update vendored ARPACK version to 3.9.1

  • #21111: BUG: ndimage.binary_erosion: avoid divide by zero by capping…

  • #21112: DOC: optimize.differential_evolution: fix interval for…

  • #21113: MAINT, DOC: simplify docs warn filter

  • #21115: BENCH: Corrections to benchmarks README and sparse.Arithmetic

  • #21116: BUG: optimize.root_scalar: let bracket be passed as a NumPy…

  • #21117: TST: interpolate: use xp_assert infrastructure

  • #21118: DOC: optimize: Add docstring to InverseJacobian

  • #21119: MAINT: remove another mpl test shim

  • #21120: BUG: cluster: Avoid OOB write when distances are NaN in centroid

  • #21121: BUG: cluster: Fix fcluster "maxclust" binary search logic

  • #21123: DEV/CI: add gmpy2 back to test dependencies

  • #21124: MAINT: use xp_vector_norm instead of xp.linalg.vector_norm

  • #21125: MAINT: remove unused minpack2 fortran code

  • #21127: TST: fix boxcox_llf test skips

  • #21128: TST: special.logsumexp: modernise tests

  • #21129: TST: sparse.linalg: test all dtypes for lobpcg B-orthonormalization

  • #21131: ENH:optimize: Rewrite MINPACK in C

  • #21132: TST: sparse.linalg: simplify dtypes def in test_expm_multiply.py

  • #21133: TST: sparse.csgraph: simplify dtypes def in test_graph_laplacian.py

  • #21141: DOC: Remove outdated comment about macos/musl in Cirrus CI config

  • #21143: MAINT: signal: Don’t redefine PyArray_MIN macro

  • #21146: MAINT: sparse.linalg: spsolve simplification

  • #21149: ENH: special.logsumexp: add array API standard support

  • #21150: ENH: ndimage: add array API standard support

  • #21151: DOC: interpolate: fix py:obj reference target not found warning

  • #21154: DOC: fix documentation about verbose in minimize_trustregion_constr.py

  • #21157: DEP: stats.find_repeats: deprecate function

  • #21162: MAINT: optimize.root_scalar: ensure user function gets…

  • #21163: MAINT: special: Make fixes needed for ellipkinc and ellipeinc…

  • #21167: ENH: interpolate: add AAA algorithm for rational approximation

  • #21168: BLD: remove optional test dependencies from cibuildwheel config

  • #21171: DEV: fix --debug and add --release to dev.py build

  • #21173: BUG/CI: Compile and run tests with ifx + MKL on Linux

  • #21176: MAINT: spatial.distance.jaccard: correct numerator calculation

  • #21179: BUG: special: cupy import guard

  • #21182: MAINT: spatial: improve weighted Chebyshev distance doc and zero…

  • #21185: DOC: optimize: Mark x1 as optional for secant root finding

  • #21186: DOC: array->``array_like`` in a few functions

  • #21194: MAINT: stats.differential_entropy: fix results with integer…

  • #21196: DEV: add label glob for scipy.differentiate

  • #21197: ENH: sparse: extend COO arrays to n-dimensions

  • #21199: MAINT: bump pybind11, mark C/C++/Cython extension modules as…

  • #21201: ENH:integrate: Rewrite QUADPACK in C

  • #21203: BUG: optimize: Avoid sharing BFGS HessianUpdateStrategy between…

  • #21204: MAINT: ensure Python.h is included first in __minpack.c

  • #21210: MAINT: special: Make sine and cosine integrals work in CUDA

  • #21211: DEP: signal.{correlate,convolve,lfilter}: deprecate object arrays…

  • #21213: MAINT, DOC: bump jupyterlite-sphinx lower bound

  • #21215: MAINT: _lib: update _docscrape from upstream

  • #21216: ENH: integrate._tanhsinh: add array API support

  • #21220: TST: sparse.linalg.lobpcg: add unit tests for accuracy

  • #21221: BENCH: sparse.linalg: check accuracy properly in LOBPCG benchmarks

  • #21222: BUG: special: cython_special missing dep

  • #21223: MAINT: interpolate: remove several fused type uses from _bspl.pyx

  • #21225: MAINT: io: move _test_fortran under tests

  • #21230: ENH: differentiate: support array initial_step

  • #21231: ENH: optimize.elementwise.find_minimum: add array API support

  • #21235: MAINT: interpolate: remove README

  • #21240: ENH: sparse: refactor 2-D COO sparse-dense matrix-matrix multiplication

  • #21242: BUG: sparse: fix two slow tests that fail in numpy 2 inside A.nnz

  • #21243: BENCH: fix --compare in python dev.py bench

  • #21245: DOC: add sphinx-copybutton

  • #21247: ENH: linalg.nullspace: expose SVD options

  • #21252: DOC: integrate.solve_bvp: make notation consistent

  • #21254: CI: Test icx + icpx + ifx + MKL build of SciPy

  • #21257: MAINT: BUG: fixed issue where optimization method trust-constr…

  • #21259: BUG: interpolate: avoid OOB in the periodic spline constructor

  • #21260: BUG: io.loadmat: fix read of large Matlab 4 arrays

  • #21264: MAINT: utilise array_api_compat v1.8

  • #21265: BUG: fix cstddef include

  • #21267: DOC: add Stack Overflow link to readme file

  • #21268: MAINT/BENCH: optimize: fix CosineMixture reference

  • #21276: MAINT: Fix incorrectly named 1234 Hz fs .wav test file

  • #21277: ENH: signal.lombscargle: update to the generalized Lomb-Scargle…

  • #21278: BLD: bump cibuildwheel closes #21275

  • #21281: MAINT: test_maxiter_worsening cleanup

  • #21282: TST: ndimage: unskip test_boundary_spline_accuracy for torch

  • #21284: MAINT: Remove mutable defaults in function definitions, forbid…

  • #21290: MAINT: linalg: run dos2unix on cython_lapack_signatures.txt

  • #21294: TST: fix GPU failures

  • #21295: DOC: find_simplex no self

  • #21297: MAINT: special: rename C++ library to xsf

  • #21299: DEV: gh_lists: improve sanitization of backticks

  • #21301: ENH: stats: Implement _logcdf and _logsf for rv_continuous

  • #21304: TST: Fix bugs in various tests found via linter

  • #21309: MAINT:integrate: Fix an off-by-one error in QUADPACK

  • #21310: MAINT/DOC: clean up _lib._array_api, update docs

  • #21312: MAINT: special: fix Pylance typing nit

  • #21313: BUG: find_simplex shape () segfault

  • #21314: ENH: optimize: Rewrite LBFGSB in C

  • #21316: MAINT: special.chdtr: fix generic chdtr

  • #21318: BUG: special: Fix bug in beta ppf by setting correct Boost policy

  • #21321: BUG: linalg: fix solve_banded raising IndexError when…

  • #21322: BUG: stats: Allow betaprime._ppf to accept scalars.

  • #21326: MAINT: stats: Improve precision of argus.sf.

  • #21328: ENH: linalg: add Python wrapper of ?gtcon

  • #21329: MAINT: interpolate.AAA: improve input validation of max_terms

  • #21330: ENH: integrate: multidimensional integration of array-valued…

  • #21331: ENH: linalg: add Python wrapper of ?trcon

  • #21332: BUG: stats.levy_stable: fix ignored parameterization

  • #21333: DOC:integrate.simpson: Remove reference to removed even param

  • #21334: TST: add xfail_xp_backends

  • #21335: BUG/ENH: stats: updates for cauchy.

  • #21336: ENH: linalg: Add sy/hetrs LAPACK wrappers

  • #21339: ENH: stats.poisson_binom: add Poisson Binomial distribution

  • #21342: MAINT: stats: fix test that discrete distribution methods accept…

  • #21344: BLD: require Meson 1.5.0, fix a missing build dependency for…

  • #21346: TST: special: Fix two XSLOW tests.

  • #21347: BUG/ENH: stats: Cauchy distribution fixes

  • #21349: TST: linalg: skip svd_gesdd test for large matrices for/in…

  • #21352: ENH: linalg.lapack.?lantr: add Python wrapper

  • #21353: MAINT: stats.randint.pmf: fix zero PMF values within the…

  • #21354: MAINT: stats.rv_discrete.ppf: fix infinite loop bug

  • #21355: MAINT: stats.geom.rvs: ensure that output is not negative…

  • #21360: BLD: use OpenBLAS v0.3.28 with fewer kernels, fix OpenBLAS licences

  • #21361: BLD: switch to more robust git hash determination

  • #21363: ENH: linalg.solve: use structure to speed up finite check, apply…

  • #21365: BUG: interpolate: FITPACK: remove fpchec.f in-line if-then-endif

  • #21367: MAINT: stats.mannwhitneyu: simplify alternative hypotheses

  • #21368: DOC: fixes ISSUE#21366

  • #21371: BUG: stats.tukeylambda: Fix the support() method.

  • #21373: ENH: interpolate.AAA: add cleanup function for removing spurious…

  • #21375: MAINT: Add local resources for smoke-tutorials

  • #21377: BENCH: Update BlockDiagSparseConstruction to use a coo_matrix

  • #21378: DOC: signal.hilbert: update to reflect implementation

  • #21387: DOC: signal: fix typos in _short_time_fft.py and signal.rst

  • #21388: ENH: special: Improve precision of special.logit.

  • #21389: ENH: scipy.stats: add normal-inverse-gamma distribution

  • #21395: DOC: stats.ecdf: fix example plot

  • #21397: DOC/DEV: add pooch to virtualenv dev quickstart guide

  • #21399: MAINT: optimize: remove unnecessary isnan check

  • #21407: BUG: optimize.minimize: set trust-constr success=False

  • #21412: ENH: sparse: add CSR/CSC _broadcast_to method

  • #21413: MAINT: cleaner 0-D/scalar checks for xp assertions, round…

  • #21419: ENH: linalg.circulant: allow batching

  • #21423: MAINT: linalg.logm: avoid ZeroDivisionError, emit…

  • #21425: DOC: linalg.qr: add example about explicit permutation matrix

  • #21427: DOC: linalg.cholesky: document when/whether only selected half…

  • #21428: DOC: linalg.hankel: emphasize that first element of r is…

  • #21429: MAINT: linalg.schur: fix sort='iuc'/'ouc', correct…

  • #21430: MAINT: forward port 1.14.1 relnotes

  • #21433: DOC: Cache jupyter notebooks build

  • #21435: ENH: sparse: Add nD COO support for matmul, dot and tensordot

  • #21437: TST/DOC: smoke docs: strict checks

  • #21440: ENH: linalg.funm: Pythranize double for loop

  • #21441: DOC: special: prolate spheroidal docs wrong

  • #21443: DOC/DEV/CI: mambaforge -> miniforge

  • #21444: DOC: optimize: make lsq_linear example smaller

  • #21446: ENH: linalg: enable N-D batch support in special matrix functions

  • #21449: DEV/MAINT: Add ± and to the extra set of allowed Unicode…

  • #21450: Use miniforge for uploading wheel builds

  • #21451: DOC: interpolate: add missing call to example code

  • #21454: ENH: special: Add root finding tools to xsf and implement gdtrib…

  • #21455: TYP: ignore missing sphinx import in mypy.ini

  • #21457: MAINT: few scipy cleanups

  • #21458: DOC: signal.firls: fix broken link

  • #21464: CI: remove fetch-depth: 0 from wheel build jobs

  • #21467: STY: fix new lint rules that are popping up in CI

  • #21468: MAINT: special: remove more functions from functions.json

  • #21469: DOC/MAINT: add references to Boost

  • #21471: BUG: sparse: undesired behaviour of 1D/2D matmul

  • #21472: MAINT: special: refactor ufunc.h and move to xsf

  • #21473: ENH: integrate.cubature: array API standard support

  • #21474: DOC: use https URLs in pull request template

  • #21477: DOC: update Contributor Quickstart guide to refer to the Building…

  • #21478: DOC: Fix version matching by extending the length of GITVER

  • #21481: MAINT/DEV: pin sphinx in environment.yml, bump jupyterlite-sphinx

  • #21483: ENH: special: computing derivatives by simple autodifferentiation

  • #21485: MAINT: interpolate: abstract out barycentric representation of…

  • #21492: MAINT: Specify SHELL=/bin/bash in doc/Makefile

  • #21493: MAINT: Check for all submodule paths in check_installation

  • #21496: TST: Use pytest-run-parallel against free-threaded CI

  • #21497: ENH: interpolate: add FloaterHormannInterpolator

  • #21499: MAINT, TST: CuPy skip ndimage test

  • #21502: MAINT: Update COBYQA to the latest release

  • #21505: BUG: special: Use Boost for ncfdtr, fixing accuracy issues

  • #21508: BUG: fft: fix real input to standard funcs

  • #21512: TST: signal: convert to xp_assert_\* infrastructure (pt….

  • #21514: DOC: signal.freqz: fix example

  • #21515: MAINT: differentiate: manually promote dtype before element assignment

  • #21516: TST: remove redundant torch skips

  • #21517: DEV: pytorch -> torch

  • #21518: ENH: stats.boxcox_llf: add GPU support

  • #21520: TST: special._smirnovp: remove test xfail after translation…

  • #21524: ENH: integrate.trapezoid: add array API standard support

  • #21525: MAINT: stats: Fix typos principle -> principal

  • #21526: BUG: optimize.minimize.powell: stop squeezing everything

  • #21528: BUG: special.logsumexp: fix type promotion

  • #21530: TST: signal: convert to xp_assert_\* infrastructure, pt 2

  • #21536: TST: interpolate: fix a spurious failure with -b all

  • #21539: MAINT: interpolate: move an internal utility from cython to python

  • #21542: DOC: integrate.cubature: fix doc formatting and references issues

  • #21544: DOC: optimize: document recipe for \*args and \*\*kwargs

  • #21545: STY: ignore rule UP038

  • #21549: ENH: ndimage: add axes support to most morphology functions

  • #21551: MAINT: interpolate: trim down _bspl extension

  • #21553: ENH:linalg: Rewrite expm in C

  • #21564: TST, MAINT: skip some torch GPU tests

  • #21565: ENH: HiGHs re-integration

  • #21567: MAINT: stats.wilcoxon: small improvements/fixes

  • #21568: MAINT: special: performance optimization for simple autodifferentiation

  • #21570: MAINT, BLD: 3.13 to classifiers

  • #21572: DEP: spatial.distance: deprecate kulczynski1 and sokalmichener

  • #21573: DOC/MAINT: stats: fix some typos

  • #21575: DOC/MAINT: doc: fix some typos

  • #21577: MAINT: special.hankel2: fix edge case

  • #21578: DOC: special.mathieu_c/sem: add information to docstring

  • #21579: TST/DEV: allow stacking of skip_xp_backends

  • #21585: DOC/MAINT: special: fix some typos

  • #21586: DOC/MAINT: spatial: fix some typos

  • #21587: BUG:linalg: Fix single precision expm UV computation

  • #21588: BUG: linalg.det: Fix edge case handling of stacked 1x1 arrays

  • #21590: DOC: signal.firwin: emphasise cutoff freq is half-amplitude

  • #21593: DOC: special.roots_legendre: fix typo in example

  • #21595: DOC: building: specify .ps1 for windows example

  • #21597: ENH: special.logsumexp: improve precision when one element…

  • #21598: DOC: spatial.voronoi_plot_2d: notes on degeneracy

  • #21599: CI: use gha-update [wheel build]

  • #21600: MAINT: _lib: vendor and use array-api-extra

  • #21602: BUG:optimize: Correct guarding, previosuly Fortran indexed, mod…

  • #21603: DOC: special.riccati_yn: highlight sign convention

  • #21604: MAINT: special.gegenbauer: fix behavior for n=0;…

  • #21605: MAINT: constants: update codata values to 2022

  • #21607: DOC/MAINT: sparse: fix some typos

  • #21608: TST: ndimage: skip fourier tests for JAX

  • #21609: ENH: integrate.lebedev_rule: points and weights of Lebedev…

  • #21612: MAINT: special: fix delegation to generic implementations

  • #21616: BUG: sparse: fix indexing after ellipsis and 2D array indexing

  • #21617: DOC/MAINT: signal: fix some typos

  • #21621: DOC/MAINT: ndimage: fix some typos

  • #21622: MAINT: special.logsumexp: enforce branch cut convention

  • #21624: DOC/MAINT: linalg: fix some typos

  • #21625: ENH: optimize.differential_evolution: respect workers when…

  • #21626: BUG: sparse.linalg: Set t=2 in test_onenormest_table_6_t_1

  • #21629: MAINT: special: use reflection formulas for spherical Bessel…

  • #21633: DEP: linalg: deprecate kron

  • #21635: TST: special: fix XSLOW failure in test_mpmath.TestSystematic.test_spherical_j

  • #21636: MAINT: differentiate.differentiate: rename function to…

  • #21637: MAINT: interpolate: deduplicate input validation for NdBSpline

  • #21638: ENH: differentiate.jacobian: support array step_direction

  • #21642: BUG: io.mmwrite: fix auto-appending of .mtx extension

  • #21646: DOC: sparse: Migration Guide rewording and tweaks

  • #21647: DOC: optimize.root: replace ‘fprime’ with ‘jac’ in method=’hybr’

  • #21648: DOC/TST: integrate.cubature: Clean up docstring and add…

  • #21656: API: integrate.cubature: change some arguments to keyword-only

  • #21657: ENH: integrate.cubature: support for infinite limits

  • #21658: ENH: stats.chatterjeexi: add xi correlation function

  • #21663: CI: fix failing conda setup

  • #21668: BUG: fft.fht: set u.imag[-1] = 0 only when n is even

  • #21672: BUG: ndimage: fix 0d arrays in _normalize_sequence

  • #21673: BUG: signal.ShortTimeFFT: fix multichannel roundtrip with mfft

  • #21680: MAINT:integrate: Silence a few QUADPACK compiler warnings

  • #21682: DOC: Reduce duplication in user guide

  • #21686: BUG: signal: int handling for resample_poly

  • #21689: BUG: optimize: fix bugs found in L-BFGS-B implementation

  • #21695: ENH: stats.chisquare: add sum_check to disable check…

  • #21697: MAINT: signal.lombscargle: fix numerical backward-compat

  • #21699: BUG: sparse.linalg: remove faulty test of eigval order from ARPACK

  • #21700: ENH: stats.Mixture: add mixture distributions for new infrastructure

  • #21701: MAINT: interpolate: remove undocumented nu arg of BSpline.design_matrix

  • #21702: MAINT: special: clean up factorial corner cases, including complex…

  • #21703: DOC: sparse: update spdiags handling in doc_string and migration…

  • #21705: MAINT: Allow greek Unicode symbols in linter.

  • #21706: DEP: signal: deprecate object arrays in sosfilt

  • #21707: ENH: stats.make_distribution: generate a ContinuousDistribution

  • #21710: ENH: sparse.linalg: convert sparse.linalg to use sparray internally

  • #21711: BUG: special: Fix formula for division of dual numbers in xsf

  • #21712: MAINT: special.logsumexp: preserve tiny imaginary components

  • #21714: TST: stats.sampling: add fail slow exception

  • #21718: DOC: stats.bootstrap: improve description of paired

  • #21719: BLD: macos-12 image deprecated [wheel build]

  • #21721: MAINT: signal: lombscargle docstring tweaks and fix handling…

  • #21723: DOC: Fixed a typo in the description of scipy.sparse.csgraph.maximum_bipartite

  • #21726: ENH: linalg.solve: add assume_a='banded'

  • #21728: ENH: special: use boost in nctdtr

  • #21729: MAINT: signal.lombscargle: vectorization changes and handling…

  • #21730: MAINT: sparse.linalg: use @ for matmul in docs/tests for Linear…

  • #21731: ENH: stats.dpareto_lognorm: add double Pareto lognormal…

  • #21734: BUG: cluster: correct type of default value of dist in ClusterNode

  • #21737: TST: differentiate: small tolerance bump on failing test

  • #21739: BLD: fix issue with capitalisation when meson detects Accelerate

  • #21744: ENH: special: Extend Riemann Zeta function to complex inputs

  • #21746: ENH: stats: exponential, logarithm, and reciprocal of a random…

  • #21748: MAINT: Updated pybind11 min version to 2.13.2

  • #21749: MAINT/DEV: fix python dev.py ipython under Debian 12 / Python…

  • #21751: BUG: array API conformance in cubature

  • #21752: ENH: stats.truncate: truncated random variables

  • #21753: DOC: sparse: migration to sparray guide updates

  • #21754: MAINT: interpolate: rename interpnd -> _interpnd

  • #21756: DOC: interpolate: detail interp1d recommended replacements

  • #21763: BUG: handle pearsonr constant case with n=2 vectors

  • #21765: MAINT: remove equality constraint that was impossible to satisfy…

  • #21767: MAINT: stats.ContinuousDistribution: protect attributes,…

  • #21768: BUG: sparse: fix ellipsis and bool array indexing combination

  • #21770: DOC: stats: correct conclusion associated with high p-value

  • #21773: DEP: special: Remove special.btdtr and special.btdtri

  • #21774: API: optimize.differential_evolution: transition to Generator…

  • #21776: BUG/ENH/DOC: spatial: Better handle & document Rotation splitting

  • #21777: ENH: stats: absolute value of a random variable

  • #21778: ENH: optimize: add array api support to rosen and friends

  • #21779: ENH: sparse.csgraph: migrate to use sparray (code changes only)

  • #21780: BUG: signal: Fix ShortTimeFFT.extent() for fft_mode ==

  • #21784: BUG: sparse: fix Asp @ vsp for 1D sparse vector and add tests

  • #21785: MAINT: optimize: migration to sparray pass 1 changes

  • #21789: ENH: integrate.nsum: support unimodal functions and infinite…

  • #21790: ENH: stats: distributions of order statistics

  • #21792: BUG: sparse: fix setdiag for matrices with missing diagonal entries

  • #21793: CI: Move free-threaded-wheels.yml into wheels.yml

  • #21794: BUG: stats.qmc: fix get_poly_vinit for multi-threading

  • #21796: MAINT: Update array_api_compat submodule for the 2023.12…

  • #21797: BUG: special: fix array index out of bound for pro_rad2

  • #21799: ENH: sparse.linalg: add is_sptriangular and spbandwidth

  • #21800: DOC: signal.find_peaks: Document that widths are returned

  • #21801: ENH: extend factorial{,2,k} to allow complex inputs

  • #21802: MAINT: special: remove dependence of xsf::numpy on sf_error

  • #21808: BUG: signal.correlation_lags: fail with meaningful error…

  • #21811: ENH: differentiate: add array API support to jacobian and…

  • #21812: API: interpolate.BarycentricInterpolator: transition to Generator…

  • #21815: TST: interpolate: parametrize tests on griddata

  • #21818: CI: Replace deadsnakes 3.13t by Quansight-Labs/setup-python action

  • #21819: ENH: stats.ContinuousDistribution: improve method resolution…

  • #21821: TST: optimize: mark MIP6 tests xslow

  • #21822: TST: stats.fit: adjust tests for seed->``rng`` transition

  • #21823: API: optimize.dual_annealing: adopt SPEC007

  • #21824: BUG: sparse: fix idx_dtype when building index arrays in…

  • #21825: DOC: make _transition_to_rng replace documentation of rng

  • #21827: BUG: special: Fix behavior of gamma and gammasgn at poles…

  • #21831: DOC: fixup _transition_to_rng Oldest GCC "'rng' is not

  • #21832: CI: constrain array-api-strict version to allow conversion to…

  • #21834: DOC: fft.fht: fix typo in example

  • #21839: MAINT:sparse.linalg: Detach ARPACK and PROPACK code sharing

  • #21840: DOC: interpolate: add a tutorial page for smoothing splines

  • #21841: DOC: tone down the text of the “legacy” admonition

  • #21843: MAINT: stats.lmoment: fixup keepdims behavior

  • #21845: API: optimize.check_grad: transition to Generator (SPEC…

  • #21847: API: optimize.basinhopping: transition to Generator (SPEC 7)

  • #21848: API: optimize.quadratic_assignment: transition to rng (SPEC…

  • #21849: DOC: interpolate: declare 1D FITPACK wrappers legacy

  • #21850: BUG: linalg.svd: avoid segmentation fault

  • #21851: STY: add comment about allowed whitespace in table

  • #21853: DOC: replace only first paragraph of rng documentation

  • #21854: API: stats._resampling: transition to rng (SPEC 7)

  • #21856: MAINT, TST: test_create_diagonal GPU support

  • #21857: BLD: warn on accelerate + non-native

  • #21858: ENH: sparse: Add safe casting function for sparse index to sputils

  • #21859: DOC: signal.unit_impulse: add explanation about delta

  • #21860: MAINT: improve handling of thread-local storage

  • #21861: MAINT: special: Use consistent std::isnan and std::isinf in a…

  • #21864: DEP: remove scipy.misc

  • #21865: MAINT: fft: Remove outdated documentation workaround

  • #21867: MAINT: stats.wilcoxon: improve documentation and tests

  • #21868: BUG: io.matlab: expose varmats_from_mat

  • #21869: MAINT: stats.ContinuousDistribution: clarify conditions that…

  • #21870: MAINT: spatial/special: follow-up on std::isnan, std::isinf

  • #21871: ENH: stats.ContinuousDistribution.sample: generate QMC samples

  • #21873: DOC: sparse.csgraph: update csgraph docs to use sparray

  • #21875: MAINT: interpolate.barycentric_interpolate: add rng argument

  • #21878: API: cluster: transition to rng (SPEC 7)

  • #21880: API: linalg.clarkson_woodruff_transform: transition to…

  • #21881: API: stats: transition goodness_of_fit, sobol_indices...

  • #21883: DOC/MAINT: Fix some typos regarding GitHub

  • #21886: API: stats.{PermutationMethod,BootstrapMethod}: transition…

  • #21888: API: sparse: transition random-like functions to…

  • #21891: BUG: spatial: guard distance_wrap directives

  • #21892: MAINT: _lib: use is_numpy etc helpers from the compat…

  • #21893: MAINT: linalg.interpolative: normalize rng argument (SPEC7)

  • #21895: MAINT: bump array-api-extra

  • #21897: MAINT: Hausdorff Generator handling

  • #21901: MAINT: stats.dpareto_lognorm._cdf: treat special case at x=0

  • #21903: MAINT: Silence warnings during linprog benchmarks

  • #21904: BUG: fix nogil LinearNDInterpolator

  • #21905: MAINT: io: migration to use sparray in IO

  • #21906: CI: gha update

  • #21909: DOC: io.loadmat: document uint16_codec parameter

  • #21912: BUG: integrate.trapezoid: fix broadcasting issue

  • #21913: API: spatial.directed_hausdorff: transition to ‘rng’ keyword…

  • #21914: MAINT: spatial.transform.Rotation.random: transition to…

  • #21916: MAINT, TST: differentiate: test_examples tolerance bump

  • #21917: BLD: fortran: only use -std=legacy for gfortran

  • #21918: BUG: optimize.curve_fit: fix sigma dimension issue with…

  • #21919: Call lcov to generate coverage reports for C, C++ and Fortran…

  • #21921: DEP: stats.ttest_ind: deprecate random_state and permutation

  • #21926: REV: Revert “MAINT: io: move _test_fortran under tests...

  • #21928: DEV: gh_lists: fix warnings

  • #21929: MAINT: bump array-api-extra to 0.2.0

  • #21930: TST: sparse.linalg: tweak rtol for flaky expm_multiply test

  • #21931: MAINT: stats.qmc: transition to rng (SPEC 7)

  • #21932: ENH: integrate.nsum: add array API standard support

  • #21937: TST: linalg.blas: fix test concurrency, mark \*ger as unsafe

  • #21938: TST: linalg: do not call np.asarray_chkfinite(np.empty((3,

  • #21941: DOC: add docs on parallel execution and thread safety

  • #21943: MAINT: mark f2py-generated extension modules as safe to run without…

  • #21944: MAINT: sparse: add broadcast_shapes function to _sputils.py

  • #21947: TST: stats.chatterjeexi: fix error message

  • #21948: TST: add more thorough SPEC 7 tests

  • #21950: CI: fix Intel oneAPI tests job

  • #21953: TST: stats.rdist: skip failing xslow test

  • #21954: ENH: sparse: ensure thread-safety

  • #21955: ENH: spatial: ensure thread-safety

  • #21961: MAINT: free-threading: declare HiGHS, ndimage._rank_filter_1d

  • #21964: TST: optimize: slight tolerance bump for a dual-annealing test

  • #21965: ENH: special: ensure tests are thread-safe

  • #21967: DOC: stats.goodness_of_fit: clarify distinction between known/fit…

  • #21973: DEV: lint: disable UP031

  • #21974: DEV: add conda-build to environment.yml

  • #21975: CI: use stable NumPy for “old build”

  • #21976: TST: optimize.elementwise.bracket_root: fix torch test…

  • #21977: ENH: integrate.tanhsinh: make _tanhsinh public

  • #21979: API: integrate.simpson: allow x to be passed positionally

  • #21981: MAINT: purge from __future__ import annotations

  • #21983: BUG: linalg: fix cython import order

  • #21984: BUG: signal: actually reject objects in correlate/convolve

  • #21985: DOC: optimize.root: fix docs for inner_\* parameters

  • #21989: DOC: integrate.tanhsinh: fix reference format; Examples heading

  • #21990: CI: remove setting macOS 10.9 for SDK and deployment target

  • #21991: BUG: stats.sobol_indices: fix mutation of input parameters

  • #21992: DOC: Unhide toctree in scipy.cluster with maxdepth

  • #21994: BLD: Remove ld_classic usage on macOS

  • #21996: ENH: stats.fisher_exact: extend to R x C tables

  • #21998: MAINT, DOC: Use Jupytext’s API, and fix cross-platform usage…

  • #22002: TST: Run complex zeta avoid underflow tests only on platforms…

  • #22003: DEV: unified git submodule exclusion for tools

  • #22009: TST: differentiate.jacobian: tolerance bump for float32