SciPy 1.13.0 Release Notes#

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

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

For running on PyPy, PyPy3 6.0+ is required.

Highlights of this release#

  • Support for NumPy 2.0.0.

  • Interactive examples have been added to the documentation, allowing users to run the examples locally on embedded Jupyterlite notebooks in their browser.

  • Preliminary 1D array support for the COO and DOK sparse formats.

  • Several scipy.stats functions have gained support for additional axis, nan_policy, and keepdims arguments. scipy.stats also has several performance and accuracy improvements.

New features#

scipy.integrate improvements#

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

scipy.io improvements#

scipy.interpolate improvements#

  • The Modified Akima Interpolation has been added to interpolate.Akima1DInterpolator, available via the new method argument.

  • New method BSpline.insert_knot inserts a knot into a BSpline instance. This routine is similar to the module-level scipy.interpolate.insert function, and works with the BSpline objects instead of tck tuples.

  • RegularGridInterpolator gained the functionality to compute derivatives in place. For instance, RegularGridInterolator((x, y), values, method="cubic")(xi, nu=(1, 1)) evaluates the mixed second derivative, \(\partial^2 / \partial x \partial y\) at xi.

  • Performance characteristics of tensor-product spline methods of RegularGridInterpolator have been changed: evaluations should be significantly faster, while construction might be slower. If you experience issues with construction times, you may need to experiment with optional keyword arguments solver and solver_args. Previous behavior (fast construction, slow evaluations) can be obtained via “*_legacy” methods: method="cubic_legacy" is exactly equivalent to method="cubic" in previous releases. See gh-19633 for details.

scipy.signal improvements#

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

scipy.sparse improvements#

  • coo_array now supports 1D shapes, and has additional 1D support for min, max, argmin, and argmax. The DOK format now has preliminary 1D support as well, though only supports simple integer indices at the time of writing.

  • Experimental support has been added for pydata/sparse array inputs to scipy.sparse.csgraph.

  • dok_array and dok_matrix now have proper implementations of fromkeys.

  • csr and csc formats now have improved setdiag performance.

scipy.spatial improvements#

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

scipy.special improvements#

  • All Fortran code, namely, AMOS, specfun, and cdflib libraries that the majority of special functions depend on, is ported to Cython/C.

  • The function factorialk now also supports faster, approximate calculation using exact=False.

scipy.stats improvements#

Deprecated features#

  • Complex dtypes in PchipInterpolator and Akima1DInterpolator have been deprecated and will raise an error in SciPy 1.15.0. If you are trying to use the real components of the passed array, use np.real on y.

  • Non-integer values of n together with exact=True are deprecated for scipy.special.factorial.

Expired Deprecations#

There is an ongoing effort to follow through on long-standing deprecations. The following previously deprecated features are affected:

  • scipy.signal.{lsim2,impulse2,step2} have been removed in favour of scipy.signal.{lsim,impulse,step}.

  • Window functions can no longer be imported from the scipy.signal namespace and instead should be accessed through either scipy.signal.windows or scipy.signal.get_window.

  • scipy.sparse no longer supports multi-Ellipsis indexing

  • scipy.signal.{bspline,quadratic,cubic} have been removed in favour of alternatives in scipy.interpolate.

  • scipy.linalg.tri{,u,l} have been removed in favour of numpy.tri{,u,l}.

  • Non-integer arrays in scipy.special.factorial with exact=True now raise an error.

  • Functions from NumPy’s main namespace which were exposed in SciPy’s main namespace, such as numpy.histogram exposed by scipy.histogram, have been removed from SciPy’s main namespace. Please use the functions directly from numpy. This was originally performed for SciPy 1.12.0 however was missed from the release notes so is included here for completeness.

Backwards incompatible changes#

Other changes#

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

Authors#

  • Name (commits)

  • h-vetinari (50)

  • acceptacross (1) +

  • Petteri Aimonen (1) +

  • Francis Allanah (2) +

  • Jonas Kock am Brink (1) +

  • anupriyakkumari (12) +

  • Aman Atman (2) +

  • Aaditya Bansal (1) +

  • Christoph Baumgarten (2)

  • Sebastian Berg (4)

  • Nicolas Bloyet (2) +

  • Matt Borland (1)

  • Jonas Bosse (1) +

  • Jake Bowhay (25)

  • Matthew Brett (1)

  • Dietrich Brunn (7)

  • Evgeni Burovski (65)

  • Matthias Bussonnier (4)

  • Tim Butters (1) +

  • Cale (1) +

  • CJ Carey (5)

  • Thomas A Caswell (1)

  • Sean Cheah (44) +

  • Lucas Colley (97)

  • com3dian (1)

  • Gianluca Detommaso (1) +

  • Thomas Duvernay (1)

  • DWesl (2)

  • f380cedric (1) +

  • fancidev (13) +

  • Daniel Garcia (1) +

  • Lukas Geiger (3)

  • Ralf Gommers (147)

  • Matt Haberland (81)

  • Tessa van der Heiden (2) +

  • Shawn Hsu (1) +

  • inky (3) +

  • Jannes Münchmeyer (2) +

  • Aditya Vidyadhar Kamath (2) +

  • Agriya Khetarpal (1) +

  • Andrew Landau (1) +

  • Eric Larson (7)

  • Zhen-Qi Liu (1) +

  • Christian Lorentzen (2)

  • Adam Lugowski (4)

  • m-maggi (6) +

  • Chethin Manage (1) +

  • Ben Mares (1)

  • Chris Markiewicz (1) +

  • Mateusz Sokół (3)

  • Daniel McCloy (1) +

  • Melissa Weber Mendonça (6)

  • Josue Melka (1)

  • Michał Górny (4)

  • Juan Montesinos (1) +

  • Juan F. Montesinos (1) +

  • Takumasa Nakamura (1)

  • Andrew Nelson (27)

  • Praveer Nidamaluri (1)

  • Yagiz Olmez (5) +

  • Dimitri Papadopoulos Orfanos (1)

  • Drew Parsons (1) +

  • Tirth Patel (7)

  • Pearu Peterson (1)

  • Matti Picus (3)

  • Rambaud Pierrick (1) +

  • Ilhan Polat (30)

  • Quentin Barthélemy (1)

  • Tyler Reddy (117)

  • Pamphile Roy (10)

  • Atsushi Sakai (8)

  • Daniel Schmitz (10)

  • Dan Schult (17)

  • Eli Schwartz (4)

  • Stefanie Senger (1) +

  • Scott Shambaugh (2)

  • Kevin Sheppard (2)

  • sidsrinivasan (4) +

  • Samuel St-Jean (1)

  • Albert Steppi (31)

  • Adam J. Stewart (4)

  • Kai Striega (3)

  • Ruikang Sun (1) +

  • Mike Taves (1)

  • Nicolas Tessore (3)

  • Benedict T Thekkel (1) +

  • Will Tirone (4)

  • Jacob Vanderplas (2)

  • Christian Veenhuis (1)

  • Isaac Virshup (2)

  • Ben Wallace (1) +

  • Xuefeng Xu (3)

  • Xiao Yuan (5)

  • Irwin Zaid (8)

  • Elmar Zander (1) +

  • Mathias Zechmeister (1) +

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

Issues closed for 1.13.0#

  • #1603: binomial ppf gives bogus results for small binomial probability…

  • #2254: linalg.eig test failure (test_singular) (Trac #1735)

  • #8398: Precision of CDFLIB too low

  • #9950: “++” initialization in kmeans2 fails for univariate data

  • #10317: scipy.stats.nbinom.interval returns wrong result for p=1

  • #10569: API: `s` argument different in scipy.fft and numpy.fft

  • #11359: lfilter error when input b is 0-dim

  • #11577: generalized eigenvalues are sometimes wrong (on some hardware)

  • #14001: Pycharm scipy SVD returning error code without message

  • #14176: Add option for terminating solver after n events

  • #14220: Documentation for dctn/idctn s-parameter is confusing

  • #14450: Passing a numpy array as sampling frequency to signal.iirfilter…

  • #14586: Problem with freeing-up memory of matrix

  • #15039: BUG: sparse.dok_matrix.fromkeys method totally nonfunctional

  • #15108: BUG: Seg. fault in scipy.sparse.linalg tests in PROPACK

  • #16098: BLD:1.8.0: SciPy is not LTO ready

  • #16792: BUG: Manually vectorizing scipy.linalg.expm fails in version…

  • #16930: BUG: scipy.linalg.blas.dnrm2 may return error result when incx…

  • #17004: Test failures for `Test_SVDS_PROPACK.test_small_sigma2` test…

  • #17125: BUG: osx-64 scipy 1.9.1 test_bad_geneig numerical error

  • #17172: BUG: scipy.linalg.expm, coshm, sinhm and tanhm fail for read-only…

  • #17362: Add support for Flexiblas

  • #17436: BUG: linalg.cholesky: segmentation fault with large matrix

  • #17530: Unnecessary approximation in `scipy.stats.wilcoxon(x, y)`

  • #17681: BUG: special: `pbvv_seq` is broken.

  • #18086: BUG: `scipy.linalg.expm` generates inconsistent results between…

  • #18089: DOC: <Scaling due to window not clear for spectrum and density>

  • #18166: ENH: stats.vonmises.pdf: return 1/(2pi) when kappa=0

  • #18408: MAINT: status of C++17 in the interregnum of meson without native…

  • #18423: ENH: Adding the SDMN Fortran routine to the python Wrapped functions.

  • #18678: BUG: scipy.special.stdtrit is not thread-safe for df.size > 500

  • #18722: DOC: in optimize.quadratic_assignment 2opt method, partial_match…

  • #18767: Too-strict version restrictions on NumPy break distribution builds

  • #18773: BUG: Update oldest-supported-numpy metadata

  • #18902: DOC: make default bounds in scipy.optimize.linprog more obvious

  • #19088: `pull-request-labeler` misbehaving and therefore disabled again

  • #19181: TST: improve array API test skip decorators

  • #19225: stats.t.fit() with own optimizer (e.g. to use Nelder-Mead) fails…

  • #19486: Query: Where is cdflib used in SciPy code?

  • #19573: scipy.fft.fht - documentation issue

  • #19584: BUG: MATLAB expm vs scipy.linalg.expm: overflow/invalid value…

  • #19596: BENCH: spatial.distance.* “non-xdist” benchmarks

  • #19605: BUG: wheel runs have a *lot* of test fails at the moment.

  • #19642: Speeding up Mann-Whitney U-Test

  • #19653: ENH: Voronoi diagram gives unexpected results from scipy.spatial

  • #19659: BUG: savemat(…, format=”4”) throws ValueError errorneously…

  • #19678: BUG: scipy.stats.theilslopes returns invalid data when input…

  • #19683: BUG/TST: cluster: incorrect test for `seed` param of {`kmeans`,…

  • #19729: DOC: Add interactive examples with jupyterlite-sphinx

  • #19732: DOC: Likelihood function depending on censoring type

  • #19733: BUG: `pythran` min version not enforced

  • #19737: TST: io: `test_fortranfiles_mixed_record` fails with numpy…

  • #19739: BUG: pchip interpolation of complex values is buggy due to sign…

  • #19740: CI, MAINT: some easy cleanups for Python version

  • #19754: MAINT, TST: test_public_api.py can fail with NumPy main, via…

  • #19767: Build warnings from SuperLU fixed upstream

  • #19772: DOC: stats: The docstring for `scipy.stats.crystalball` needs…

  • #19774: DOC: Detail what “concatenate” means in the context of `spatial.transform.Rotation.concatenate`

  • #19799: DOC: array types: update array validation guidance

  • #19813: BUG: typo in specfun.f?

  • #19819: BUG: In RBFInterpolator, wrong warning message if degree=-1

  • #19831: Test failures with OpenBLAS 0.3.26

  • #19835: DOC: `fft` missing from list of subpackages

  • #19836: DOC: remove incorrect sentence about subpackage imports

  • #19846: CI: pre-release Linux job isn’t using NumPy pre-release anymore

  • #19848: `_lib._util.MapWrapper` uses multiprocessing with `fork`,…

  • #19854: scipy.special.logsumexp for complex input with return_sign=True…

  • #19862: DOC: documentation for transpose operator for sparse matrices…

  • #19867: New ndimage and RBFInterpolator test failures in pre-release…

  • #19896: BUG: `special.nctdtr` broken in main

  • #19897: DOC: scipy.stats.unitary_group does not specify dim>1

  • #19928: TST: special: array types: test tol failure with `torch` backend

  • #19943: BUG: sparse: CSC.setdiag is slower than converting to LIL and…

  • #19948: BUG: scipy.sparse.linalg.gmres fails when provided x0 solves…

  • #19951: BUG: boolean masking broken for sparse array classes

  • #19963: DOC: scipy.optimize with large differences in parameter scales

  • #19974: DOC/REL: retroactively add missing expired deprecations to 1.12.0…

  • #19991: BUG: Scipy Optimize with Nelder-Mead method has issues when specifying…

  • #19993: BUG: F_INT type conflict with f2py translation of INTEGER type…

  • #19998: DOC: Boundary conditions in splrep

  • #20001: BUG: scipy.stats.loglaplace may return negative moments

  • #20009: BUG: ShortTimeFFT fails with complex input

  • #20012: MAINT: Use NumPy sliding_window_view instead of as_strided in…

  • #20014: TST: signal: TestCorrelateReal failing on Meson 3.12 job

  • #20027: BUG: `sparse.random` returns transposed array in 1.12

  • #20031: TST: prefer `pytest.warns` over `np.testing.assert_warns`

  • #20034: TST: linalg: test_decomp_cossin.py::test_cossin_separate[float64]…

  • #20036: MAINT: implement scipy.stats.powerlaw._munp

  • #20041: BUG: Using LinearConstraint with optimize.differential_evolution

  • #20042: BUG: scipy.stats.percentileofscore has a mistake

  • #20043: equality used to compare floating point numbers (test_bootstrap_alternative)

  • #20060: BUG: stacking two dok_array produces a NotImplementedError about…

  • #20062: MAINT, TST: test failures against NumPy main

  • #20071: MAINT: doc build warnings

  • #20075: BUG: `eigh_tridiagonal` with `select=”i”` fails for 1x1 matrices

  • #20084: BUG: `import scipy._lib._testutils` raises exception in some…

  • #20100: ENH: Expose NoConvergence error class in the scipy.optimize namespace

  • #20107: MAINT: builds broken against NumPy main

  • #20129: BUG: regression: eval_chebyt gives wrong results for complex…

  • #20131: DOC: linalg: Unclear description for the output `P` of `qr`.

  • #20142: Typo in the doc of the Kstwobign distribution

  • #20156: BUG: sparse.dok_matrix throws KeyError for valid pop(key) since…

  • #20157: MAINT, TST: test_svds_parameter_tol failures

  • #20161: `dev.py test` fails to accept both `–argument` and `–…

  • #20170: Test failures due to `asarray(…, copy=False)` semantics change…

  • #20180: deprecation warnings for Node.js 16 on GHA wheel build jobs

  • #20182: BUG: `csr_row_index` and `csr_column_index` error for mixed…

  • #20188: BUG: Raising scipy.spatial.transform.Rotation to power of 0 adds…

  • #20214: BUG: minimize(method=”newton-cg”) crashes with UnboundLocalError…

  • #20220: new problem on Cirrus with Homebrew Python in macOS arm64 jobs

  • #20225: CI/MAINT: `choco` error for invalid credentials

  • #20230: CI, DOC, TST: failure related to scipy/stats/_distn_infrastructure.py…

  • #20268: MAINT: failing prerelease deps job - “numpy.broadcast size changed”

  • #20291: BUG: Macro collision (`complex`) with Windows SDK in amos code

  • #20294: BUG: Hang on Windows in scikit-learn with 1.13rc1 and 1.14.dev…

  • #20300: BUG: SciPy 1.13.0rc1 not buildable on old macOS due to pocketfft…

  • #20302: BUG: scipy.optimize.nnls fails with exception

  • #20340: BUG: line_search_wolfe2 fails to converge due to a wrong condition

  • #20344: MAINT/DOC: remove outdated note about NumPy imports

Pull requests for 1.13.0#

  • #8404: ENH:special:Tighten cdflib precision to 1e-15

  • #14771: ENH: integrate.solve_ivp: allow event `terminal` attribute…

  • #16660: DOC: update pydata-sphinx theme

  • #17265: Doc: fix linalg.lstsq documentation on residues

  • #17525: TST: linalg: temporarily silence failure in test_solve_generalized_discrete_are

  • #18530: ENH: sparse: Generalize coo_array to support 1d shapes

  • #18541: MAINT: sparse: Stop supporting multi-Ellipsis indexing

  • #18828: ENH: improve dtype check in wavfile.write

  • #19444: ENH: Add faster inverse-Wishart rvs and logpdf

  • #19488: DOC: Improving “Spectral Analysis” section in User Guide

  • #19541: BUG: fix cosine distance result type

  • #19545: ENH: integrate._tanhsinh: support vector-valued functions

  • #19555: DOC: Small documentation and docstring corrections for `ShortTimeFFT`

  • #19560: ENH:MAINT:special:Cythonize cdflib

  • #19587: ENH:MAINT:special:Rewrite amos F77 code

  • #19631: ENH: add parameter ymax in stats.boxcox_normmax

  • #19633: ENH: use NdBSpline in RegularGridInterpolator to speed up evaluations

  • #19650: ENH: stats.kstests: add axis / nan_policy / keepdims support

  • #19662: ENH: stats.normaltest/skewtest/kurtosistest: add axis / nan_policy…

  • #19663: DOC: Add example to rv_continuous.fit

  • #19664: DOC: Add example for mstats.brunnermunzel

  • #19666: DOC: Add Example to lbfgsb docstring

  • #19667: ENH: integrate._nsum: function for finite and infinite summation

  • #19669: REL: set version to 1.13.0.dev0

  • #19672: DEP: signal: remove scipy.signal.{bspline,quadratic,cubic}

  • #19674: DEP: linalg: remove tri{,u,l}

  • #19675: DEP: signal: remove scipy.signal.{lsim2,impulse2,step2}

  • #19676: DEP: signal: remove ability to import window functions from signal…

  • #19679: MAINT: stats.theilslopes: consistent promotion of `x` and `y`

  • #19680: ENH: stats.shapiro: add axis / nan_policy / keepdims support

  • #19681: MAINT: Add binom to new C++ special lib along with its cephes…

  • #19682: TST: consolidate array API test skip decorators

  • #19687: MAINT:linalg: Remove redundant det and lu Fortran files

  • #19689: MAINT: stats.moment: rename parameter `moment` to `order`

  • #19694: MAINT: Remove `PDistWeightedMetricWrapper` and `CDistWeightedMetricWrapper`

  • #19695: MAINT: Prefer `np.fill_diagonal` over `diag_indices`

  • #19696: ENH: add `method` arg to `interpolate.Akima1DInterpolator`

  • #19698: MAINT: bump project version

  • #19701: MAINT: make import of `array_api_compat` nicer

  • #19703: DEP: non-integers in `factorial(…, exact=True)`: deprecate…

  • #19708: DOC: spatial.distance: add missing optional param markers

  • #19710: TST: fix pytest discovery errors with editable installs

  • #19711: DOC: clarify ttest_1samp argument

  • #19714: BLD: require Cython >=3.0.4, drop 0.29.X support

  • #19715: ENH: sparse: Add DOK support for 1d (without indexing)

  • #19716: ENH: enable approximation for factorialk

  • #19721: DOC: add rationale for 88 char line length

  • #19722: DOC: update release version procedure

  • #19723: ENH, MAINT: voronoi_plot_2d nicer inf lines

  • #19724: MAINT: Windows NumPy 2.x int shims

  • #19725: MNT: use int instead of long in cython code

  • #19728: MAINT: enhance the configuration for the `pull-request-labeler`…

  • #19730: MAINT: bs4 deprecation shim

  • #19731: ENH: stats.mood: add nan_policy / keepdims support

  • #19738: BLD: require `pythran>=0.14.0`

  • #19741: ENH: stats.friedmanchisquare/brunnermunzel: add axis / nan_policy…

  • #19742: CI: fix PR labeler config file

  • #19743: ENH: sparse: Add min-max 1d support and tests

  • #19744: ENH: stats.mannwhitneyu: speed improvement, memory reduction,…

  • #19745: TST: fortranfiles fix

  • #19746: CI: add labeler based on issue/PR titles

  • #19749: ENH: stats.mannwhitneyu: vectorize statistic calculation

  • #19750: DEV/BLD: generate `requirements/*` files to simplify build

  • #19752: DEP: deprecate complex dtypes in `PchipInterpolator` and `Akima1DInterpolator`

  • #19755: MAINT/TST: ignore backend import errors when not in array API…

  • #19757: ENH: Add vectorized scalar minimization bracket finder

  • #19758: MAINT: correct inaccurate comment

  • #19760: MAINT: interpolate: remove dead code

  • #19762: ENH: stats.monte_carlo_test: account for inexact calculation…

  • #19763: MAINT: integrate._nsum: adjust algorithm for determining number…

  • #19768: MAINT: SuperLU upstream fix for compile warnings

  • #19770: ENH: stats.wilcoxon: rewrite for speed and clarity; add PermutationMethod…

  • #19773: DOC: stats: The docstring for scipy.stats.crystalball needs an…

  • #19775: DOC: Docstring and examples for Rotation.concatenate

  • #19776: ENH: stats.rankdata: vectorize calculation

  • #19777: ENH: add `BSpline.insert_knot` method

  • #19778: DOC, MAINT: fix make dist in rel process

  • #19780: MAINT: scipy.stats: replace `_normtest_finish`/`_ttest_finish`/etc……

  • #19781: CI, MAINT: switch to stable python release

  • #19786: BLD: fix “Failed to guess install tag” in meson-log.txt, add…

  • #19787: DOC/BLD: macOS Homebrew OpenBlas detection advice

  • #19788: DOC: stats.trim_mean: correct documentation

  • #19790: BENCH: Added benchmarks for individual distance metrics

  • #19792: MAINT: simplify `t.logpdf`

  • #19796: API: Enable `pydata/sparse` input for csgraph module

  • #19803: TST: stats: compare geometric zscore to naive version instead…

  • #19807: DOC: fft: add note about FHT formulas

  • #19808: MAINT: move elementwise algorithms and framework

  • #19810: MAINT: set `NPY_NO_DEPRECATED_API` also for Cython code

  • #19811: BLD: set default `cpp_std` to `c++17`

  • #19818: MAINT: uarray CXX version hex cleanup

  • #19820: TST: linalg: Test Cython LAPACK complex ladiv

  • #19821: BLD: resolve missing prototype warnings in lsoda/vode

  • #19822: BLD: propack: resolve missing return value warnings

  • #19823: CI/DEV: add some new auto-labels

  • #19824: ENH:Rewrite specfun F77 code in C

  • #19825: MAINT: `CODEOWNERS` syntax fix and changes

  • #19827: MAINT: spatial: fix build warnings in `ckdtree` code

  • #19828: CI/DEV: fix and simplify `label-globs` syntax

  • #19829: MAINT: interpolate: fix build warning from `_ppoly.pyx`

  • #19837: MAINT: special: fix meson deprecation warning

  • #19838: DOC: fft: improve `s` description for real transforms

  • #19843: DOC: Add `fft` to list of submodules in tutorial

  • #19844: TST: fix more cases of fd leaks from np.load()

  • #19849: CI: fix prerelease job to use numpy 2.0, and add a second job…

  • #19853: ENH: sparse: foundation for 1D arrays (add test suite, round…

  • #19855: BLD: Revamp BLAS/LAPACK G77 ABI wrappers and fix PROPACK segfaults

  • #19856: BLD: simplify pythran version requirement in meson

  • #19857: BLD: make scipy build warning-free with LTO enabled

  • #19860: MAINT: fix BLD label typo

  • #19861: BUG:io:Skip arr_to_chars call for single code points

  • #19864: Add documentation to explain behavior for transposing csr or…

  • #19866: DOC: Change default for bounds in scipy.optimize.linprog

  • #19868: MAINT: fix use of `unique(…, return_inverse=True)`

  • #19869: MAINT: array types: rename `as_xparray` to `_asarray`

  • #19870: MAINT: logsumexp: properly handle complex sign

  • #19871: MAINT: make isinstance check in `stats._distn_infrastructure`…

  • #19874: rankdata: ensure correct shape for empty inputs

  • #19876: MAINT: stats: Add tests to ensure consistency between `wasserstein_distance` and different backends of `wasserstein_distance_nd`

  • #19880: DOC: prepare 1.13.0 release notes

  • #19882: MAINT: vendor `pocketfft` as git submodule

  • #19885: MAINT: fix some small array API support issues

  • #19886: TST: stats: fix a few issues with non-reproducible seeding

  • #19891: MAINT: stats: fix editable install issue in `qmc` and MPL-related…

  • #19893: MAINT: remove unused itertools-import in scipy.interpolate._interpolate

  • #19901: MAINT: special: remove use of `numpy.math` from `_cdflib.pyx`

  • #19902: BUG:special:cdflib: Correct cdftnc Cython bugs

  • #19908: Fix AIX build break.

  • #19909: MAINT:linalg:Adjust lwork/liwork changes OpenBLAS 0.3.26

  • #19916: MAINT: update pocketfft git submodule location

  • #19917: MAINT: replicate FITPACK’s `fpchec` routine in python

  • #19924: TST: cluster: fix test_kmeans_and_kmeans2_random_seed

  • #19925: MAINT: forward port 1.12.0 relnotes

  • #19927: BUG: cluster.kmeans*: array types: accept `int`s for k

  • #19929: DOC: updated incorrect sentence about subpackage imports. See…

  • #19931: MAINT:special:cdflib:Refine the tolerances further

  • #19932: ENH:stats:Use explicit formula for gamma.fit(‘mm’)

  • #19933: BUG: Correct handling of -inf in special stdr funcs

  • #19934: BUG:special:amos: Fix some mistakes in the AMOS C translation

  • #19937: TST: Add RNG seeds for TestInvgauss and TestLaplace

  • #19938: MAINT: special: array types: fix warning when not in array API…

  • #19939: BUG:special:amos: Fix exit path in `amos_asyi`

  • #19942: MAINT: hypothesis: document minimum required version

  • #19944: BUG: Correct handling of inf support in binomial

  • #19945: BLD: fix issue with escape sequences in `__config__.py`

  • #19947: BUG:special:amos: Fix typo in `amos_mlri`

  • #19950: DOC: stats.logrank: fix typo that affect survival curves in manual

  • #19952: BUG:sparse:Add early exit to gmres when x0 already solves problem

  • #19957: defect: sparse: 1d bool mask with wrong shape should raise IndexError

  • #19961: DOC: Add version warning banner to documentation

  • #19962: ENH: sparse: speedup csr/csc setdiag by converting to coo

  • #19965: DOC: scale of parameters in optimize.curve_fit

  • #19969: DOC: Fix landing page images for dark theme

  • #19971: ENH: Input validation for sampling frequency in signal.filter…

  • #19975: ENH: support custom statistic in goodness_of_fit function (gh-19894)

  • #19977: DOC: document a common alternative parameterization of invgauss.

  • #19978: DOC: fix autosummary for scipy.signal.ShortTimeFFT.t/T under…

  • #19980: ENH: stats: add axis/nan_policy support to `f_oneway` and `alexandergovern`

  • #19981: TST: correct typo in TestGamma.test_fit_mm function.

  • #19995: TST, MAINT: test_immediate_updating fix

  • #19997: MAINT: Adjust the codebase to the new `np.array`’s `copy`…

  • #20000: MAINT: interpolate: address review comments on NdBSpline/RGI

  • #20003: MAINT: sparse: change coo_matrix.indices to coo_matrix.coords

  • #20004: MAINT: sparse: change method names _mul_* to _matmul_* all…

  • #20005: MAINT: Remove partial from `__all__` (removed from submodule)

  • #20006: BENCH: optimize: add timings to global optimizers benchmarks

  • #20010: BUG: Add proper error message for `ShortTimeFFT` for onesided…

  • #20013: MAINT: signal: use `sliding_window_view` instead of `as_strided`

  • #20016: DOC: update release docs to reflect new version banner

  • #20017: BUG: loglaplace moment should be non-negative.

  • #20018: ENH: refer to the Laplace distribution in log-Laplace documentation.

  • #20019: DOC: Add support for interactive examples with jupyterlite-sphinx

  • #20020: TST: TestCorrelateReal overflow shim

  • #20021: ENH: fix numerical instability around zero in boxcox_llf

  • #20023: ENH: use analytic formula for log-laplace MLE when loc is known.

  • #20024: ENH:stats: Add multivariate Wasserstein distance as a separate…

  • #20032: MAINT: Adjust some comments in special C++ library

  • #20033: MAINT: sparse: Un-deprecate getnnz()

  • #20037: MAINT: Add special handling for complex infinite input in digamma

  • #20039: ENH: use analytical formula in scipy.stats.powerlaw._munp().

  • #20044: TST: _ConstraintWrapper returns a violation of the correct shape

  • #20045: DOC: add missing np. in tutorial

  • #20047: TST: use assert_allclose in test_bootstrap_alternative

  • #20052: FIX: Allow any dtype-specifier for ndimage output

  • #20053: Add sorting requirement for partial_match and partial_guess

  • #20054: BUG: SciPy.interpolate.CubicSpline with periodic data

  • #20063: ENH: optimize._differentiate: add option preserve_shape

  • #20065: MAINT Fix broken link in `scipy.stats._multivariate.py`

  • #20067: TST: shims for NumPy fft changes

  • #20068: Changed assert_warns in stats testing to pytest.warns.

  • #20069: MAINT/DOC: `special.nrdtrimn/nrdtrisd` docstring fixes

  • #20070: MAINT: silence ruff deprecation warning

  • #20076: BUG:linalg:Add early exit to eigh_tridiagonal for 1x1 input

  • #20078: CI: update github actions and cibuildwheel

  • #20080: BUG: sparse: Fix hstack, etc for dok_array

  • #20086: MAINT: detect musl differently.

  • #20087: MAINT: switch from `numpy.array_api` to `array-api-strict`

  • #20092: DOC: Fix a could of places that are parsed as substitution references…

  • #20093: DOC: Fix small typos in `signal.rst` and `_short_time_fft.py`

  • #20095: DOC: tick tensor product splines off the roadmap

  • #20096: TST:linalg:Reduce the size of the cossin test

  • #20098: MAINT: minor array API skip improvements

  • #20101: MAINT: editorial changes in the doc string of scipy.stats.vonmises.

  • #20102: ENH: use non-trivial bounds to solve for kappa of vonmises MLE.

  • #20103: MAINT: optimize: expose `NoConvergence`

  • #20104: ENH: allow shape parameter kappa to be zero in vonmises distribution.

  • #20106: DOC: update docstring of stats.percentileofscore

  • #20108: MAINT: shim for descr->f access

  • #20111: DOC: clarify accepted values for `dim` in `unitary_group`.

  • #20112: BLD: signal: do not install Pythran source alongside the Cython…

  • #20119: Fix small issues in docstrings

  • #20121: BLD: simplifications in meson.build files

  • #20122: MAINT: update Boost.Math to 1.83.0

  • #20123: MAINT: stats: fix test failure in `kendalltau_seasonal`

  • #20130: BUG: Use Cython implementation of complex hyp2f1 in orthogonal_eval.pxd

  • #20135: MAINT: interpolate: define `F_INT` as `int` rather than `npy_int32`

  • #20138: TST: optimize: silence the output from calling cobyla with disp=True

  • #20141: MAINT/CI: special/array types: test alternative backends in CI

  • #20143: DOC: stats: Fix typo in the doc of the Kstwobign distribution

  • #20144: MAINT, ENH: Hausdorff simplification

  • #20145: TST: special: bump tolerances for new `cdftnc` regression tests

  • #20146: MAINT: fix incorrect `noexcept` usage in Cython functions

  • #20149: BLD: Ensure Python.h is included before system headers.

  • #20153: BLD: interpolate: _interpnd_info does not need installing

  • #20154: ENH: sparse: implement fromkeys for _dok_base

  • #20163: MAINT: dev.py: allow –args after –

  • #20168: BUG: optimize: Fix constraint condition in inner loop of nnls

  • #20172: MAINT: (additional) array copy semantics shims

  • #20173: TST:special:Add partial tests for nrdtrimn and nrdtrisd

  • #20174: DOC: interpolate: `splrep` default boundary condition

  • #20175: MAINT: sparse: add missing dict methods to DOK and tests

  • #20176: MAINT: vulture/ruff fixups

  • #20181: MAINT: Avoid `descr->elsize` and use intp for it.

  • #20183: BUG: Fix fancy indexing on compressed sparse arrays with mixed…

  • #20184: DOC, DX: Remove version warning banner in latest version

  • #20186: MAINT: update action. Closes #20180

  • #20191: BUG: Fix shape of single Rotation raised to the 0 or 1 power

  • #20193: MAINT: Bump `npy2_compat.h` and add temporary pybind11 workaround

  • #20195: ENH: linalg: allow readonly arrays in expm et al

  • #20197: TST: linalg: fix complex sort in test_bad_geneig

  • #20198: BLD: update minimum Cython version to 3.0.8

  • #20203: TST: linalg: undo xfail TestEig::test_singular

  • #20204: TST: linalg: add a regression test for a gen eig problem

  • #20205: BUG: Fixed `fftshift()` in `ShortTimeFFT`.

  • #20206: DOC: clarify role of p in linalg.qr.

  • #20209: CI: move regular macosx_arm64 from cirrus to GHA

  • #20210: BLD: macosx_arm64 wheel build on GHA instead of cirrus

  • #20212: BUG: linalg/sqrtm: more robust check for real->complex Schur…

  • #20215: MAINT: bump OpenBLAS “the old way”

  • #20217: DOC/MAINT: add examples for nctdtridf, nctdtrinc, nctdtrit

  • #20218: TST: mark linalg.sqrtm test as xfail

  • #20221: TST: Tweak tols and ignore warnings for more reliable SVD tests

  • #20222: DOC add likelihood formula to stats.CensoredData

  • #20224: BUG: fix `cluster.vq.kmeans2` with minit=’++’ for 1D data

  • #20227: MAINT: remove repeated “the” typos

  • #20229: BUG: linalg: fix int overflow in Cholesky (potrf)

  • #20231: DOC/DX: array types: update `_asarray` description

  • #20232: BLD: Refactor BLAS/LAPACK wrapper infrastructure

  • #20233: DOC: stats.rv_continuous.fit: fix backslashes

  • #20235: DOC: add reference for ARGUS distribution in scipy.stats

  • #20236: DOC: fix small typo in array API docs

  • #20237: MAINT: optimize: update `_direct` for typos

  • #20238: MAINT: revert ARPACK changes from #20227

  • #20241: BLD: remove use of `NPY_VISIBILITY_HIDDEN`

  • #20243: MAINT: Specfun translation into C++

  • #20245: MAINT: Updated _specfun.pyx

  • #20248: MAINT: Removed specfun_lib and updated specfun_wrappers

  • #20250: MAINT: interpolate: const qualify cython arrays

  • #20251: MAINT:special:Adjust inf values for cdflib

  • #20254: MAINT: linalg: readability refactor Riccati equation solver tests

  • #20259: BUG: linalg: fix `expm` for large arrays

  • #20261: BUG:linalg:Remove the 2x2 branch in expm

  • #20263: DOC/REL: add missing expired deprecations to 1.12.0 notes

  • #20266: MAINT: stats.wilcoxon: pass `PermutationMethod` options to…

  • #20270: BLD: update dependencies for 1.13.0 release and numpy 2.0

  • #20279: MAINT: 1.13.0rc1 prep [wheel build]

  • #20290: REL: set 1.13.0rc2 unreleased

  • #20299: BUG: Optimize: NewtonCG min crashes with xtol=0

  • #20313: MAINT: bump pocketfft, MacOS patch

  • #20314: BUG: sparse: Restore random coordinate ordering to pre-1.12 results

  • #20318: BUG: signal: Fix scalar input issue of signal.lfilter

  • #20327: DOC: mention BSpline.insert_knot in the 1.13.0 release notes

  • #20333: BUG: sync pocketfft again

  • #20337: MAINT: spatial: use cython_lapack in spatial/_qhull.pyx

  • #20341: BUG: linalg: raise an error in dnrm2(…, incx<0)

  • #20345: BUG: nelder-mead fix degenerate simplex

  • #20347: BLD: require pybind11 >=2.12.0 for numpy 2.0 compatibility

  • #20349: Do not segfault in svd(a) with VT.size > INT_MAX

  • #20350: BUG: optimize: Fix wrong condition to check invalid optimization…

  • #20353: DOC: remove outdated NumPy imports note

  • #20359: ENH: Converting amos to std::complex

  • #20361: ENH: Rest of amos translation

  • #20362: MAINT, BUG: bump OpenBLAS

  • #20364: BUG: interpolate: Fix wrong warning message if degree=-1 in `interpolate.RBFInterpolator`

  • #20374: MAINT: update pybind11 and numpy build-time requirements for…