Skip to main content
`Ctrl`+`K`

# SciPy 1.10.0 Release Notes

SciPy 1.10.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.10.x branch, and on adding new features on the main branch.

This release requires Python 3.8+ and NumPy 1.19.5 or greater.

For running on PyPy, PyPy3 6.0+ is required.

## Highlights of this release

- A new dedicated datasets submodule (`scipy.datasets`) has been added, and is now preferred over usage of `scipy.misc` for dataset retrieval.

- A new `scipy.interpolate.make_smoothing_spline` function was added. This function constructs a smoothing cubic spline from noisy data, using the generalized cross-validation (GCV) criterion to find the tradeoff between smoothness and proximity to data points.

- `scipy.stats` has three new distributions, two new hypothesis tests, three new sample statistics, a class for greater control over calculations involving covariance matrices, and many other enhancements.

## New features

### `scipy.datasets` introduction

- A new dedicated `datasets` submodule has been added. The submodules is meant for datasets that are relevant to other SciPy submodules ands content (tutorials, examples, tests), as well as contain a curated set of datasets that are of wider interest. As of this release, all the datasets from `scipy.misc` have been added to `scipy.datasets` (and deprecated in `scipy.misc`).

- The submodule is based on [Pooch](https://www.fatiando.org/pooch/latest/) (a new optional dependency for SciPy), a Python package to simplify fetching data files. This move will, in a subsequent release, facilitate SciPy to trim down the sdist/wheel sizes, by decoupling the data files and moving them out of the SciPy repository, hosting them externally and downloading them when requested. After downloading the datasets once, the files are cached to avoid network dependence and repeated usage.

- Added datasets from `scipy.misc`: `scipy.datasets.face`, `scipy.datasets.ascent`, `scipy.datasets.electrocardiogram`

- Added download and caching functionality:

  - `scipy.datasets.download_all`: a function to download all the `scipy.datasets` associated files at once.

  - `scipy.datasets.clear_cache`: a simple utility function to clear cached dataset files from the file system.

  - `scipy/datasets/_download_all.py` can be run as a standalone script for packaging purposes to avoid any external dependency at build or test time. This can be used by SciPy packagers (e.g., for Linux distros) which may have to adhere to rules that forbid downloading sources from external repositories at package build time.

### `scipy.integrate` improvements

- Added parameter `complex_func` to `scipy.integrate.quad`, which can be set `True` to integrate a complex integrand.

### `scipy.interpolate` improvements

- `scipy.interpolate.interpn` now supports tensor-product interpolation methods (`slinear`, `cubic`, `quintic` and `pchip`)

- Tensor-product interpolation methods (`slinear`, `cubic`, `quintic` and `pchip`) in `scipy.interpolate.interpn` and `scipy.interpolate.RegularGridInterpolator` now allow values with trailing dimensions.

- `scipy.interpolate.RegularGridInterpolator` has a new fast path for `method="linear"` with 2D data, and `RegularGridInterpolator` is now easier to subclass

- `scipy.interpolate.interp1d` now can take a single value for non-spline methods.

- A new `extrapolate` argument is available to `scipy.interpolate.BSpline.design_matrix`, allowing extrapolation based on the first and last intervals.

- A new function `scipy.interpolate.make_smoothing_spline` has been added. It is an implementation of the generalized cross-validation spline smoothing algorithm. The `lam=None` (default) mode of this function is a clean-room reimplementation of the classic `gcvspl.f` Fortran algorithm for constructing GCV splines.

- A new `method="pchip"` mode was aded to `scipy.interpolate.RegularGridInterpolator`. This mode constructs an interpolator using tensor products of C1-continuous monotone splines (essentially, a `scipy.interpolate.PchipInterpolator` instance per dimension).

### `scipy.sparse.linalg` improvements

- The spectral 2-norm is now available in `scipy.sparse.linalg.norm`.

- The performance of `scipy.sparse.linalg.norm` for the default case (Frobenius norm) has been improved.

- LAPACK wrappers were added for `trexc` and `trsen`.

- The `scipy.sparse.linalg.lobpcg` algorithm was rewritten, yielding the following improvements:

  - a simple tunable restart potentially increases the attainable accuracy for edge cases,

  - internal postprocessing runs one final exact Rayleigh-Ritz method giving more accurate and orthonormal eigenvectors,

  - output the computed iterate with the smallest max norm of the residual and drop the history of subsequent iterations,

  - remove the check for `LinearOperator` format input and thus allow a simple function handle of a callable object as an input,

  - better handling of common user errors with input data, rather than letting the algorithm fail.

### `scipy.linalg` improvements

- `scipy.linalg.lu_factor` now accepts rectangular arrays instead of being restricted to square arrays.

### `scipy.ndimage` improvements

- The new `scipy.ndimage.value_indices` function provides a time-efficient method to search for the locations of individual values with an array of image data.

- A new `radius` argument is supported by `scipy.ndimage.gaussian_filter1d` and `scipy.ndimage.gaussian_filter` for adjusting the kernel size of the filter.

### `scipy.optimize` improvements

- `scipy.optimize.brute` now coerces non-iterable/single-value `args` into a tuple.

- `scipy.optimize.least_squares` and `scipy.optimize.curve_fit` now accept `scipy.optimize.Bounds` for bounds constraints.

- Added a tutorial for `scipy.optimize.milp`.

- Improved the pretty-printing of `scipy.optimize.OptimizeResult` objects.

- Additional options (`parallel`, `threads`, `mip_rel_gap`) can now be passed to `scipy.optimize.linprog` with `method='highs'`.

### `scipy.signal` improvements

- The new window function `scipy.signal.windows.lanczos` was added to compute a Lanczos window, also known as a sinc window.

### `scipy.sparse.csgraph` improvements

- the performance of `scipy.sparse.csgraph.dijkstra` has been improved, and star graphs in particular see a marked performance improvement

### `scipy.special` improvements

- The new function `scipy.special.powm1`, a ufunc with signature `powm1(x, y)`, computes `x**y - 1`. The function avoids the loss of precision that can result when `y` is close to 0 or when `x` is close to 1.

- `scipy.special.erfinv` is now more accurate as it leverages the Boost equivalent under the hood.

### `scipy.stats` improvements

- Added `scipy.stats.goodness_of_fit`, a generalized goodness-of-fit test for use with any univariate distribution, any combination of known and unknown parameters, and several choices of test statistic (Kolmogorov-Smirnov, Cramer-von Mises, and Anderson-Darling).

- Improved `scipy.stats.bootstrap`: Default method `'BCa'` now supports multi-sample statistics. Also, the bootstrap distribution is returned in the result object, and the result object can be passed into the function as parameter `bootstrap_result` to add additional resamples or change the confidence interval level and type.

- Added maximum spacing estimation to `scipy.stats.fit`.

- Added the Poisson means test (“E-test”) as `scipy.stats.poisson_means_test`.

- Added new sample statistics.

  - Added `scipy.stats.contingency.odds_ratio` to compute both the conditional and unconditional odds ratios and corresponding confidence intervals for 2x2 contingency tables.

  - Added `scipy.stats.directional_stats` to compute sample statistics of n-dimensional directional data.

  - Added `scipy.stats.expectile`, which generalizes the expected value in the same way as quantiles are a generalization of the median.

- Added new statistical distributions.

  - Added `scipy.stats.uniform_direction`, a multivariate distribution to sample uniformly from the surface of a hypersphere.

  - Added `scipy.stats.random_table`, a multivariate distribution to sample uniformly from m x n contingency tables with provided marginals.

  - Added `scipy.stats.truncpareto`, the truncated Pareto distribution.

- Improved the `fit` method of several distributions.

  - `scipy.stats.skewnorm` and `scipy.stats.weibull_min` now use an analytical solution when `method='mm'`, which also serves a starting guess to improve the performance of `method='mle'`.

  - `scipy.stats.gumbel_r` and `scipy.stats.gumbel_l`: analytical maximum likelihood estimates have been extended to the cases in which location or scale are fixed by the user.

  - Analytical maximum likelihood estimates have been added for `scipy.stats.powerlaw`.

- Improved random variate sampling of several distributions.

  - Drawing multiple samples from `scipy.stats.matrix_normal`, `scipy.stats.ortho_group`, `scipy.stats.special_ortho_group`, and `scipy.stats.unitary_group` is faster.

  - The `rvs` method of `scipy.stats.vonmises` now wraps to the interval `[-np.pi, np.pi]`.

  - Improved the reliability of `scipy.stats.loggamma` `rvs` method for small values of the shape parameter.

- Improved the speed and/or accuracy of functions of several statistical distributions.

  - Added `scipy.stats.Covariance` for better speed, accuracy, and user control in multivariate normal calculations.

  - `scipy.stats.skewnorm` methods `cdf`, `sf`, `ppf`, and `isf` methods now use the implementations from Boost, improving speed while maintaining accuracy. The calculation of higher-order moments is also faster and more accurate.

  - `scipy.stats.invgauss` methods `ppf` and `isf` methods now use the implementations from Boost, improving speed and accuracy.

  - `scipy.stats.invweibull` methods `sf` and `isf` are more accurate for small probability masses.

  - `scipy.stats.nct` and `scipy.stats.ncx2` now rely on the implementations from Boost, improving speed and accuracy.

  - Implemented the `logpdf` method of `scipy.stats.vonmises` for reliability in extreme tails.

  - Implemented the `isf` method of `scipy.stats.levy` for speed and accuracy.

  - Improved the robustness of `scipy.stats.studentized_range` for large `df` by adding an infinite degree-of-freedom approximation.

  - Added a parameter `lower_limit` to `scipy.stats.multivariate_normal`, allowing the user to change the integration limit from -inf to a desired value.

  - Improved the robustness of `entropy` of `scipy.stats.vonmises` for large concentration values.

- Enhanced `scipy.stats.gaussian_kde`.

  - Added `scipy.stats.gaussian_kde.marginal`, which returns the desired marginal distribution of the original kernel density estimate distribution.

  - The `cdf` method of `scipy.stats.gaussian_kde` now accepts a `lower_limit` parameter for integrating the PDF over a rectangular region.

  - Moved calculations for `scipy.stats.gaussian_kde.logpdf` to Cython, improving speed.

  - The global interpreter lock is released by the `pdf` method of `scipy.stats.gaussian_kde` for improved multithreading performance.

  - Replaced explicit matrix inversion with Cholesky decomposition for speed and accuracy.

- Enhanced the result objects returned by many `scipy.stats` functions

  - Added a `confidence_interval` method to the result object returned by `scipy.stats.ttest_1samp` and `scipy.stats.ttest_rel`.

  - The `scipy.stats` functions `combine_pvalues`, `fisher_exact`, `chi2_contingency`, `median_test` and `mood` now return bunch objects rather than plain tuples, allowing attributes to be accessed by name.

  - Attributes of the result objects returned by `multiscale_graphcorr`, `anderson_ksamp`, `binomtest`, `crosstab`, `pointbiserialr`, `spearmanr`, `kendalltau`, and `weightedtau` have been renamed to `statistic` and `pvalue` for consistency throughout `scipy.stats`. Old attribute names are still allowed for backward compatibility.

  - `scipy.stats.anderson` now returns the parameters of the fitted distribution in a `scipy.stats._result_classes.FitResult` object.

  - The `plot` method of `scipy.stats._result_classes.FitResult` now accepts a `plot_type` parameter; the options are `'hist'` (histogram, default), `'qq'` (Q-Q plot), `'pp'` (P-P plot), and `'cdf'` (empirical CDF plot).

  - Kolmogorov-Smirnov tests (e.g. `scipy.stats.kstest`) now return the location (argmax) at which the statistic is calculated and the variant of the statistic used.

- Improved the performance of several `scipy.stats` functions.

  - Improved the performance of `scipy.stats.cramervonmises_2samp` and `scipy.stats.ks_2samp` with `method='exact'`.

  - Improved the performance of `scipy.stats.siegelslopes`.

  - Improved the performance of scipy.stats.mstats.hdquantile_sd.

  - Improved the performance of `scipy.stats.binned_statistic_dd` for several NumPy statistics, and binned statistics methods now support complex data.

- Added the `scramble` optional argument to `scipy.stats.qmc.LatinHypercube`. It replaces `centered`, which is now deprecated.

- Added a parameter `optimization` to all `scipy.stats.qmc.QMCEngine` subclasses to improve characteristics of the quasi-random variates.

- Added tie correction to `scipy.stats.mood`.

- Added tutorials for resampling methods in `scipy.stats`.

- `scipy.stats.bootstrap`, `scipy.stats.permutation_test`, and `scipy.stats.monte_carlo_test` now automatically detect whether the provided `statistic` is vectorized, so passing the `vectorized` argument explicitly is no longer required to take advantage of vectorized statistics.

- Improved the speed of `scipy.stats.permutation_test` for permutation types `'samples'` and `'pairings'`.

- Added `axis`, `nan_policy`, and masked array support to `scipy.stats.jarque_bera`.

- Added the `nan_policy` optional argument to `scipy.stats.rankdata`.

## Deprecated features

- `scipy.misc` module and all the methods in `misc` are deprecated in v1.10 and will be completely removed in SciPy v2.0.0. Users are suggested to utilize the `scipy.datasets` module instead for the dataset methods.

- `scipy.stats.qmc.LatinHypercube` parameter `centered` has been deprecated. It is replaced by the `scramble` argument for more consistency with other QMC engines.

- `scipy.interpolate.interp2d` class has been deprecated. The docstring of the deprecated routine lists recommended replacements.

## Expired Deprecations

- There is an ongoing effort to follow through on long-standing deprecations.

- The following previously deprecated features are affected:

  - Removed `cond` & `rcond` kwargs in `linalg.pinv`

  - Removed wrappers `scipy.linalg.blas.{clapack, flapack}`

  - Removed `scipy.stats.NumericalInverseHermite` and removed `tol` & `max_intervals` kwargs from `scipy.stats.sampling.NumericalInverseHermite`

  - Removed `local_search_options` kwarg frrom `scipy.optimize.dual_annealing`.

## Other changes

- `scipy.stats.bootstrap`, `scipy.stats.permutation_test`, and `scipy.stats.monte_carlo_test` now automatically detect whether the provided `statistic` is vectorized by looking for an `axis` parameter in the signature of `statistic`. If an `axis` parameter is present in `statistic` but should not be relied on for vectorized calls, users must pass option `vectorized==False` explicitly.

- `scipy.stats.multivariate_normal` will now raise a `ValueError` when the covariance matrix is not positive semidefinite, regardless of which method is called.

## Authors

- Name (commits)

- h-vetinari (10)

- Jelle Aalbers (1)

- Oriol Abril-Pla (1) +

- Alan-Hung (1) +

- Tania Allard (7)

- Oren Amsalem (1) +

- Sven Baars (10)

- Balthasar (1) +

- Ross Barnowski (1)

- Christoph Baumgarten (2)

- Peter Bell (2)

- Sebastian Berg (1)

- Aaron Berk (1) +

- boatwrong (1) +

- boeleman (1) +

- Jake Bowhay (50)

- Matthew Brett (4)

- Evgeni Burovski (93)

- Matthias Bussonnier (6)

- Dominic C (2)

- Mingbo Cai (1) +

- James Campbell (2) +

- CJ Carey (4)

- cesaregarza (1) +

- charlie0389 (1) +

- Hood Chatham (5)

- Andrew Chin (1) +

- Daniel Ching (1) +

- Leo Chow (1) +

- chris (3) +

- John Clow (1) +

- cm7S (1) +

- cmgodwin (1) +

- Christopher Cowden (2) +

- Henry Cuzco (2) +

- Anirudh Dagar (12)

- Hans Dembinski (2) +

- Jaiden di Lanzo (24) +

- Felipe Dias (1) +

- Dieter Werthmüller (1)

- Giuseppe Dilillo (1) +

- dpoerio (1) +

- drpeteb (1) +

- Christopher Dupuis (1) +

- Jordan Edmunds (1) +

- Pieter Eendebak (1) +

- Jérome Eertmans (1) +

- Fabian Egli (2) +

- Sebastian Ehlert (2) +

- Kian Eliasi (1) +

- Tomohiro Endo (1) +

- Stefan Endres (1)

- Zeb Engberg (4) +

- Jonas Eschle (1) +

- Thomas J. Fan (9)

- fiveseven (1) +

- Neil Flood (1) +

- Franz Forstmayr (1)

- Sara Fridovich-Keil (1)

- David Gilbertson (1) +

- Ralf Gommers (251)

- Marco Gorelli (2) +

- Matt Haberland (387)

- Andrew Hawryluk (2) +

- Christoph Hohnerlein (2) +

- Loïc Houpert (2) +

- Shamus Husheer (1) +

- ideasrule (1) +

- imoiwm (1) +

- Lakshaya Inani (1) +

- Joseph T. Iosue (1)

- iwbc-mzk (1) +

- Nathan Jacobi (3) +

- Julien Jerphanion (5)

- He Jia (1)

- jmkuebler (1) +

- Johannes Müller (1) +

- Vedant Jolly (1) +

- Juan Luis Cano Rodríguez (2)

- Justin (1) +

- jvavrek (1) +

- jyuv (2)

- Kai Mühlbauer (1) +

- Nikita Karetnikov (3) +

- Reinert Huseby Karlsen (1) +

- kaspar (2) +

- Toshiki Kataoka (1)

- Robert Kern (3)

- Joshua Klein (1) +

- Andrew Knyazev (7)

- Jozsef Kutas (16) +

- Eric Larson (4)

- Lechnio (1) +

- Antony Lee (2)

- Aditya Limaye (1) +

- Xingyu Liu (2)

- Christian Lorentzen (4)

- Loïc Estève (2)

- Thibaut Lunet (2) +

- Peter Lysakovski (1)

- marianasalamoni (2) +

- mariprudencio (1) +

- Paige Martin (1) +

- Arno Marty (1) +

- matthewborish (3) +

- Damon McDougall (1)

- Nicholas McKibben (22)

- McLP (1) +

- mdmahendri (1) +

- Melissa Weber Mendonça (9)

- Jarrod Millman (1)

- Naoto Mizuno (2)

- Shashaank N (1)

- Pablo S Naharro (1) +

- nboudrie (2) +

- Andrew Nelson (52)

- Nico Schlömer (1)

- NiMlr (1) +

- o-alexandre-felipe (1) +

- Maureen Ononiwu (1) +

- Dimitri Papadopoulos (2) +

- partev (1) +

- Tirth Patel (10)

- Paulius Šarka (1) +

- Josef Perktold (1)

- Giacomo Petrillo (3) +

- Matti Picus (1)

- Rafael Pinto (1) +

- PKNaveen (1) +

- Ilhan Polat (6)

- Akshita Prasanth (2) +

- Sean Quinn (1)

- Tyler Reddy (155)

- Martin Reinecke (1)

- Ned Richards (1)

- Marie Roald (1) +

- Sam Rosen (4) +

- Pamphile Roy (105)

- sabonerune (2) +

- Atsushi Sakai (94)

- Daniel Schmitz (27)

- Anna Scholtz (1) +

- Eli Schwartz (11)

- serge-sans-paille (2)

- JEEVANSHI SHARMA (1) +

- ehsan shirvanian (2) +

- siddhantwahal (2)

- Mathieu Dutour Sikiric (1) +

- Sourav Singh (1)

- Alexander Soare (1) +

- Bjørge Solli (2) +

- Scott Staniewicz (1)

- Ethan Steinberg (3) +

- Albert Steppi (3)

- Thomas Stoeger (1) +

- Kai Striega (4)

- Tartopohm (1) +

- Mamoru TASAKA (2) +

- Ewout ter Hoeven (5)

- TianyiQ (1) +

- Tiger (1) +

- Will Tirone (1)

- Ajay Shanker Tripathi (1) +

- Edgar Andrés Margffoy Tuay (1) +

- Dmitry Ulyumdzhiev (1) +

- Hari Vamsi (1) +

- VitalyChait (1) +

- Rik Voorhaar (1) +

- Samuel Wallan (4)

- Stefan van der Walt (2)

- Warren Weckesser (145)

- wei2222 (1) +

- windows-server-2003 (3) +

- Marek Wojciechowski (2) +

- Niels Wouda (1) +

- WRKampi (1) +

- Yeonjoo Yoo (1) +

- Rory Yorke (1)

- Xiao Yuan (2) +

- Meekail Zain (2) +

- Fabio Zanini (1) +

- Steffen Zeile (1) +

- Egor Zemlyanoy (19)

- Gavin Zhang (3) +

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

- #1261: errors in fmin_bfgs and some improvements (Trac #734)

- #2167: BivariateSpline errors with kx=ky=1 (Trac #1642)

- #2304: funm gives incorrect results for non-diagonalizable inputs (Trac…

- #3421: Rename information theory functions?

- #3854: KroghInterpolator doesn’t pass through points

- #4043: scipy.interpolate.interp1d should be able to take a single value

- #4555: leastsq should use cholesky not inv for hessian inversion

- #4598: von Mises random variate sampling broken for non-zero location…

- #4975: Documentation for s in UnivariateSpline is confusing

- #6173: scipy.interpolate.lagrange implemented through coefficients

- #6688: ENH: optimize.basinhopping: call an acceptance test before local…

- #7104: scipy.stats.nct - wrong values in tails

- #7268: scipy.sparse.linalg.norm does not implement spectral norm

- #7521: scipy.UnivariateSpline smoothing condition documentation inaccuracy

- #7857: griddata sensible to size of original grid when it should not

- #8376: InterpolatedUnivariateSpline.roots() seems to miss roots sometimes

- #9119: documentation issues of functions in scipy.stats.mstats

- #9389: Kolmogorov Smirnov 2 samples returning max distance location…

- #9440: Unexpected successful optimization with minimize when number…

- #9451: Add shgo to optimize benchmarks

- #10737: Goodness of fit tests for distributions with unknown parameters

- #10911: scipy.optimize.minimize_scalar does not automatically select…

- #11026: rv_discrete.interval returning wrong values for alpha = 1

- #11053: scipy.stats: Allow specifying inverse-variance matrix to multivariate_normal

- #11131: DOC: stats.fisher_exact does not match R functionality for `oddsratio`…

- #11406: scipy.sparse.linalg.svds (v1.4.1) on singular matrix does not…

- #11475: Filter radius as optional argument for gaussian_filter1d/gaussian_filter

- #11772: Cache covariance matrix decomposition in frozen multivariate_normal

- #11777: non-central chi2 (scipy.stats.ncx2.pdf) gets clipped to zero…

- #11790: NaN handling of stats.rankdata

- #11860: Occurrence of nan values when using multinomial.pmf from scipy.stats?

- #11916: Improve documentation for smoothing in interpolate.UnivariateSpline…

- #12041: Spherical mean/variance

- #12246: Interpolation 2D with SmoothBivariateSpline

- #12621: Scalar minimization functions have no references

- #12632: curve_fit algorithm try to transform xdata in an array of floats

- #12963: shgo is not correctly passing jac to minimizer

- #13021: 2D Interpolation Scaling Issues

- #13049: Examples missing import numpy as np?

- #13452: Calling `len()` on the `scipy.spatial.transform.rotation.Rotation`…

- #13529: signal.decimate doesn’t use sosfilters and sosfiltfilt

- #14098: DOC-Update for InterpolatedUnivariateSpline and LSQUnivariateSpline

- #14198: better description of solveh_banded limitations

- #14348: Extract spline coefficient from splprep: tck

- #14386: Let CloughTocher2DInterpolator fit “nearest” for points outside…

- #14472: scipy.interpolate.CubicSpline boundary conditions appear to be…

- #14533: optimize.shgo gives unexpected TypeError

- #14541: Raspberry Pi 4 aarch64: ModuleNotFoundError: No module named…

- #14584: scipy.signal.filter_design.zpk2sos doctests fail (values different…

- #14809: BUG: scipy.signal.periodogram window parameter

- #14853: BUG: sqrtm dtype

- #14922: Question: Seemingly unused, non-working script `isolve/tests/demo_lgres.py`

- #15049: BUG: Visualization of CWT matrix in signal.cwt example code

- #15072: BUG: signal.decimate returns NaN with large float32 arrays

- #15393: BUG: signal.decimate returns unexpected values with float32 arrays

- #15473: ENH: `skewnorm.cdf` is very slow. Consider a much more efficient…

- #15618: ENH: Generation of random 2D tables with given marginal totals

- #15675: ENH: `multivariate_normal` should accept eigendecomposition…

- #15685: ENH: The exact p-value calculation in `stats.cramervonmises_2samp`…

- #15733: DEP: remove quiet parameter from fitpack

- #15749: DEP: remove tol from `NumericalInverseHermite`

- #15792: MAINT: There is no unittest and documentation of Improper integral…

- #15807: DEP: remove dual_annealing argument ‘local_search_options’

- #15844: It’s not that obvious that `firls` requires an even number…

- #15883: BUG: stats.bootstrap bca implementation triggers ValueError for…

- #15936: Please add citations to the papers for COLAMD

- #15996: Symbol hiding when using GNU linker in the Meson build should…

- #16148: Documentation in spearmanr

- #16235: BUG: Memory leak in function `Py_FindObjects` due to new reference…

- #16236: BUG: Memory leak in function `py_filter2d` due to new reference…

- #16251: DEP: Execute deprecation of scipy.linalg.blas.{clapack, flapack}

- #16252: DEP: add deprecation warnings to kwargs `turbo` / `eigvals`…

- #16253: DEP: add deprecation warning for kwargs `nyq` / `Hz` in firwin*

- #16256: DEP: add deprecation warning for binom_test

- #16272: BUG: unclear error for invalid bracketing

- #16291: BUG: lambertw returns nan’s on small values

- #16297: DOC: minor release procedure adjustment

- #16319: ENH: improved accuracy and orthonormality of output eigenvectors…

- #16333: DOC: rvalue description is missing in stats.probplot

- #16334: BUG: CLI help is not accessible using light themes

- #16338: ENH: Add option to clip out of bounds input values to minimum…

- #16342: BUG: IIRdesign function ftype=’bessel’ not recognized

- #16344: ENH: improved `stats.ortho_group`

- #16364: ENH: stats: return bunches rather than plain tuples

- #16380: BUG: RegularGridInterpolator error message is wrong

- #16386: TST: sparse/linalg/tests/test_expm_multiply.py::test_expm_multiply_dtype…

- #16399: `test_mio.py::test_recarray` failure due to dtype handling…

- #16413: DOC: rvs method docstrings refer to seed argument instead of…

- #16433: ENH: scipy.stats.bootstrap() should do BCa for multivariate statistics…

- #16472: handle spline interpolation methods in `interpn`

- #16476: dev.py does not propagate error codes, thus hides errors on CI

- #16490: DOC: err on example for `scipy.signal.upfirdn`

- #16558: BUG: leaves_color_list incorrect when distance=0

- #16580: Typo in scipy/optimize/tests/test_optimize.py, logit instead…

- #16582: TST: RegularGridInterpolator tests should be parameterised

- #16603: ENH, DOC: Add policy on typo and small docs fixes

- #16663: BUG: `bool(rotation)` leads to error

- #16673: Test failure for `TestPoisson.test_mindist` in Azure CI job

- #16713: BUG/DOC: spatial: docstrings of `Rotation` methods are missing…

- #16726: CI: Python 3.11 tests are failing because a dependency is using…

- #16741: BUG: DOC: editing docstring example in svds

- #16759: DOC: Add ‘import numpy as np’ to the ‘Examples’ section of docstrings.

- #16763: BUG: numpy version requirement mismatch docs vs setup.py

- #16773: BUG: indexing error in scipy.spatial.Voronoi in 3D

- #16796: DOC: Method “bisect” for root_scalar lacks correct argument list

- #16819: BUG: stats.binned_statistic_2d is ~8x slower when using `statistic=np.mean`…

- #16833: Runtime performance in BSpline.design_matrix is inferior to BSpline().__call__()

- #16892: Add legend to `rv_histogram` plot in docs

- #16912: MAINT: stats: optimize: Move `_contains_nan` function to more…

- #16914: BUG: documentation of scipy.stats.truncnorm could be clearer

- #17031: BUG: stats: Intermittent failure of the test ‘test_plot_iv’

- #17033: New CI failures in `sparse` with nightly numpy

- #17047: BUG: Documentation error in scipy.signal

- #17056: Mypy failure in CI for `numpy/__init__.pyi` positional-only…

- #17065: BUG: minimize(method=’L-BFGS-B’) documentation is contradictory

- #17070: Using Meson-built 1.10.0.dev0 nightly wheel in a conda environment…

- #17074: BUG: scipy.optimize.linprog does not fulfill integer constraints…

- #17078: DOC: “These are not universal functions” difficult to understand…

- #17089: ENH: Documentation on test behind p-values of .spearmanr

- #17129: DOC: inconsistency in when a new feature was added

- #17155: BUG: stats: Bug in XSLOW tests in TestNumericalInverseHermite

- #17167: BUG: bernoulli.pmf returns non-zero values with non-integer arguments

- #17168: `test_powm1` failing in CI on Windows

- #17174: MAINT, REL: wheels not uploaded to staging on push to maintenance

- #17241: BUG: CubicSpline segfaults when passing empty values for `y`with…

- #17336: BUG: Meson build unconditionally probes for pythran, despite…

- #17375: BUG: resample_poly() freezes with large data and specific samplerate…

- #17380: BUG: optimize: using `integrality` prevents `linprog` from…

- #17382: BUG/DOC: optimize: `minimize` doc should reflect tnc’s deprecation…

- #17412: BUG: Meson error:compiler for language “cpp”, not specified for…

- #17444: BUG: beta.ppf causes segfault

- #17468: Weird errors with running the tests `scipy.stats.tests.test_distributions`…

- #17518: ENH: stats.pearsonr: support complex data

- #17523: BUG: `[source]` button in the docs sending to the wrong place

- #17578: TST, BLD, CI: 1.10.0rc1 wheel build/test failures

- #17619: BUG: core dump when calling scipy.optimize.linprog

- #17644: BUG: 1.10.0rc2 Windows wheel tests runs all segfault

- #17650: BUG: Assertion failed when using HiGHS

## Pull requests for 1.10.0

- #9072: ENH: Added rectangular integral to multivariate_normal

- #9932: ENH: stats.gaussian_kde: add method that returns marginal distribution

- #11712: BUG: trust-constr evaluates function out of bounds

- #12211: DOC: Dice similiarity index

- #12312: ENH: Accelerate matrix normal sampling using matmul

- #12594: BUG: fixed indexing error when using bounds in Powell’s method…

- #13053: ENH: add MLE for stats.powerlaw.fit

- #13265: ENH: Kstest exact performance improvements

- #13340: ENH: stats: Add the function odds_ratio.

- #13663: ENH: linalg: Add LAPACK wrappers for trexc and trsen.

- #13753: DOC: optimize: update Powell docs to reflect API

- #13957: ENH: stats.ks_2samp: Pythranize remaining exact p-value calculations

- #14248: MAINT:linalg: Make lu_factor accept rectangular arrays

- #14317: ENH: Optimize sparse frobenius norm

- #14402: DOC: Clarify argument documentation for `solve`

- #14430: ENH: improve siegelslopes via pythran

- #14563: WIP: stats: bins=auto in docstrings

- #14579: BENCH: optimize: add DFO CUTEST benchmark

- #14638: DOC: added mention of the limitations of Thomas’ algorithm

- #14840: ENH: Addition of Poisson Means Test (E-test).

- #15097: ENH: add radius to gaussian_filter1d and gaussian_filter

- #15444: ENH: Infinite df approximation for Studentized Range PDF

- #15493: ENH: Convert gaussian_kde logpdf to Cython

- #15607: ENH: Add `scipy.datasets` submodule

- #15709: ENH: improve the computation time of stats.cramervonmises_2samp()

- #15770: ENH: stats: replace ncx2 stats distribution with Boost non_central_chi_squared

- #15878: DEP: remove local_search_options of dual_annealing

- #15892: BUG: stats: use mean behavior for percentileofscore in bootstrap

- #15901: DEP: Deprecate scipy.misc in favour of scipy.datasets

- #15967: TST/DOC: stats: explain/check 100% interval for discrete distributions

- #15972: DOC: length of `bands` param. specified in `firls`

- #16002: ENH: Allow specyfing inverse covariance of a multivariate normal…

- #16017: ENH: special: Use boost for a couple ufuncs.

- #16069: ENH: add additional MLE for fixed parameters in gumbel_r.fit

- #16096: BUG: use SOS filters in decimate for numerical stability

- #16109: ENH: add `optimization` to `QMCEngine`

- #16140: ENH: stats: Add `nan_policy` optional argument for `stats.rankdata`

- #16224: Add a `pchip` mode to RegularGridInterpolator.

- #16227: BUG: special: Fix a couple issues with the ‘double-double’ code…

- #16238: MAINT: stats: support string array for _contains_nan and add…

- #16268: DOC: optimize: add marginals/slack example to `linprog`

- #16294: BUG: linalg: Add precision preservation for `sqrtm`

- #16298: REL: set version to 1.10.0.dev0

- #16299: DEP: Execute deprecation of scipy.linalg.blas.{clapack, flapack}

- #16307: DEP: add deprecation warning for binom_test

- #16315: DEP: add deprecation warning for kwargs nyq / Hz in firwin

- #16317: ENH: stats: add truncated (i.e. upper bounded) Pareto distribution…

- #16320: ENH: improved accuracy and orthonormality of output eigenvectors…

- #16327: DOC: BLD: remove `-scipyopt` from html Make command and build…

- #16328: MAINT: retry openblas download in CI

- #16332: BLD: ensure we get understandable messages when git submodules…

- #16335: BLD: update NumPy to >=1.19.5

- #16336: MAINT: forward port git scoping

- #16340: DEP: remove tol & max_intervals from NumericalInverseHermite

- #16346: DEV: add meson-python to environment.yml

- #16351: Added “import numpy as np” statement to filter examples

- #16354: DOC: optimize: remove callback doc from the options in `_minimize_lbfgsb`…

- #16355: DEP: add deprecation warnings to kwargs turbo / eigvals of linalg.eigh

- #16356: DOC: add examples to `signal.medfilt2d`

- #16357: BENCH: Add SHGO and DIRECT to optimization benchmark

- #16362: ENH: Provide more information when a value is out of bounds in…

- #16367: BUG: unclear error for invalid bracketing

- #16371: MAINT: remove last (already safe) usage of `mktemp`

- #16372: MAINT: rename `do.py` to `dev.py`

- #16373: DOC: added rvalue description in `stats.probplot`

- #16377: ENH: stats.bootstrap: update warning to mention np.min

- #16383: BUG: fix error message of RegularGridInterpolator

- #16387: ENH: stats.combine_pvalues: convert output tuple to Bunch

- #16388: DEP: deprecate `stats.kendalltau` kwarg `initial_lexsort`

- #16389: DEP: sharpen stats deprecations

- #16392: DEP: add warning to `sparse.gmres` deprecated kwarg `restrt`

- #16397: MAINT: fix two refcounting issues in `ndimage`

- #16398: MAINT: Replace find_common_types

- #16406: MAINT: stats.rankdata: change default to nan_policy=’propagate’

- #16407: ENH: stats.fisher_exact: convert output tuple to Bunch

- #16411: MAINT: optimize.brute should coerce non-tuple args to tuple

- #16415: DOC: stats: fix seed -> random_state in `rvs` docstring

- #16423: MAINT: stats: not using nested TypeErrors in _contains_nan

- #16424: MAINT: future-proof `stats.kde` for changes in numpy casting…

- #16425: DOC: Procedure adjustment in file doc/source/dev/core-dev/releasing.rst.inc

- #16428: MAINT: fix up `_sputils.get_index_dtype` for NEP 50 casting…

- #16431: CI: fix Gitpod build after dev.py update to the new CLI

- #16432: Docstring fixes in lobpcg.py

- #16434: DOC: stats.mstats.sen_seasonal_slopes: add docstring

- #16435: ENH: directional mean

- #16438: MAINT: remove unused `DeprecatedImport`

- #16439: ENH: stats.chi2_contingency: convert output tuple to Bunch

- #16440: ENH: stats.median_test: convert output tuple to Bunch

- #16441: ENH: stats.mood: convert output tuple to Bunch

- #16442: MAINT: fix issues with Python scalar related casting behavior…

- #16447: BLD: make it easier to build with AddressSanitizer

- #16449: ENH: improve scipy.interpolate.RegularGridInterpolator performance

- #16450: BUG: Fix CLI Help in light themes

- #16454: ENH: stats.bootstrap: return bootstrap distribution

- #16455: ENH: stats.bootstrap: add BCa method for multi-sample statistic

- #16462: CI: Update Python 3.8-dbg job to ubuntu-20.04

- #16463: ENH: stats.jarque_bera: add axis, nan_policy, masked array support

- #16470: DOC: stats.spearmanr: add information about p-value calculation

- #16471: MAINT: interpolate/RGI: only call `find_indices` when needed

- #16474: DOC: Add more information to entropy docstring

- #16475: BLD: build the f2py shared source file once and link to each…

- #16481: BUG: Change (n+1) to n for correct jackknife calculation of hd…

- #16486: DOC: special.entr: add context

- #16487: MAINT: Improve test speed, add timeouts

- #16496: add notes for x and y array sorted in decreasing order

- #16497: DOC: special: Add ‘Examples’ section to spence docstring.

- #16498: ENH: Speed up hdquantile_sd via cumulative sums

- #16501: DOC: Fix typo in spatial.Delaunay

- #16502: DOC: Minor Rst syntax update.

- #16503: ENH: stats: Implement _munp() for the skewnorm distribution.

- #16505: DOC: correct errs on examples for scipy.signal.upfirdn

- #16508: BUG/ENH: handle spline interpolation methods in `interpn` and…

- #16511: add reference to regulargridinterpolator

- #16513: MAINT: skip complex128 propack tests on windows (& module clean-up)

- #16516: DOC: add a hint on what to use in case of matlab v7.3

- #16518: CI: pip and conda caching in all workflows

- #16524: TST: stats.permutation_test: strengthen test against `ks_2samp`

- #16529: CI: clean up scikit-umfpack and scikit-sparse usage in CI

- #16532: Deprecated imports in docstring examples in `io.harwell_boeing`…

- #16533: ENH: signal: add Lanczos window function

- #16534: CI: fix scikit-umfpack and scikit-sparse install in Azure job

- #16535: MAINT: signal: Fix matplotlib deprecation warning in the chirp…

- #16543: DOC: update cwt doc examples

- #16544: DOC: add better example for `MultinomialQMC`.

- #16546: DOC: Add alt-text to tutorial images

- #16547: ENH: correct bounds warnings in `minimize`

- #16550: TST: fix flaky sparse.linalg.exmp test

- #16552: CI: test distro Python install on Ubuntu Jammy (22.04 LTS)

- #16554: TST: add timeout to `test_kappa4_array_gh13582`

- #16557: BUG: fix `interpolate.RegularGridInterpolator` `out_of_bounds`…

- #16559: ENH: adding a logpdf function to von-mises distribution

- #16560: vectorize ortho_group.rvs

- #16561: DOC: optimize: Fix warning in differential_evolution docstring

- #16565: [DOC] improper type syntax in basinhopping docstring.

- #16566: fix window function doc string for Window length

- #16567: DOC: Add note about inaccuracies in matrix functions

- #16571: DOC: sparse.linalg: add references for UMFPACK.

- #16574: ENH: vectorize along samples `stats.ortho_group.rvs` and `stats.unitary_group.rvs`

- #16576: testing documentation broken link fix

- #16587: DOC: add import NumPy in QMC examples.

- #16589: DOC: update toolchain.rst after EOL of manylinux_2_24; allow…

- #16591: ENH: stats.nct: replace with boost implementation

- #16592: DOC: interpolate: document the .roots() workaround

- #16594: MAINT: Better pytest-timeout support

- #16596: MAINT: stats.rv_continuous: consistently return NumPy scalars

- #16607: MAINT: remove unnecessary `__future__` imports

- #16608: TST: stats.rv_continuous: more direct test for numpy scalar output

- #16612: ENH: vectorize along samples `stats.special_ortho_group.rvs`

- #16614: DOC: add import NumPy in linalg decomposition function examples

- #16615: DOC: Adding import numpy to several files

- #16616: DOC: Adding import numpy to examples in some stats files

- #16617: DOC: Update instructions for debugging using dev.py

- #16618: DOC: add import NumPy in bsplines examples

- #16619: DOC: add import numpy in some stats examples

- #16620: DOC: Add numpy import to examples

- #16621: FIX: upstream fix for binomial distribution divide-by-zero

- #16624: DOC: add NumPy imports in `_mstats_basic.py` examples

- #16625: DOC: add `import numpy as np` to examples

- #16626: BUG: cluster: fix `leaves_color_list` issue

- #16627: TST: spatial.directed_hausdorff: Parametrized test_random_state_None_int

- #16629: DOC: Modifiy the scipy.stats.mode example to be nontrivial.

- #16631: MAINT: stats.gaussian_kde: raise informative message with degenerate…

- #16632: MAINT: signal:corrected peak_finding example

- #16633: DOC: update benchmarking docs to use dev.py user interface

- #16634: DOC: Add example to fft.fht

- #16635: DOC: fix default_rng namespace and linestyle of an example

- #16639: DOC: better links in readme for newcomers

- #16640: MAINT: optimize: always return a float from goal functional wrapper

- #16641: DOC: optimize: fix doc that `curve_fit` xdata should be float…

- #16644: DOC: io: Add Examples section for mminfo, mmread and mmwrite.

- #16646: MAINT: have get_index_dtype follow its documentation and return…

- #16647: MAINT: Fix expit function name typo in test_optimize.py

- #16650: DOC: io: Add ‘Examples’ to the ‘whosmat’ docstring.

- #16651: ENH: stats.resampling: automatically detect whether statistic…

- #16652: MAINT: Remove unused imports.

- #16653: DEV: generalized cross-validation smoothing spline

- #16654: ENH: stats: add aliases to results objects

- #16658: BUG: signal: Compare window_length to correct axis in savgol_filter

- #16659: DOC: replace `sphinx_panels` and `sphinx_tabs` with `sphinx_design`

- #16666: MAINT: remove unused `__main__` code from `optimize` submodule

- #16667: DOC: spatial: Correct barycentric description in Delaunay

- #16668: DOC: signal: Update values in zpk2sos docstring examples.

- #16670: MAINT: fix a compiler warning in `signal/_firfilter.c`

- #16672: BLD: update minimum `meson` and `meson-python` versions

- #16675: TST: sparse.linalg: increase `lobpcg` solve tolerance in test

- #16676: MAINT: stats.mstats.mode: refactor to keep `kwargs` out of…

- #16677: TST: speed up mindist test

- #16678: DOC: remove custom colours in css

- #16680: MAINT: stats.gmean: corrections with `axis=None` when masked-array…

- #16683: DEV: add `–durations` argument to dev.py interface

- #16685: BLD: implement compiler version checks for GCC and MSVC

- #16687: DOC: signal: Update the examples in the remez docstring.

- #16689: MAINT: sparse.linalg: remove LGMRES demo

- #16690: random uniform -> normal to initiate lobpcg and arpack in svds

- #16691: ENH: stats: Implement isf for the levy distribution.

- #16692: ENH: stats.gaussian_kde: replace use of inv_cov in pdf

- #16696: ENH: Speed up sparse.csgraph.dijkstra

- #16699: DOC: stats: resampling and Monte Carlo methods tutorial

- #16703: BLD: upgrade meson(-python) min versions and remove explicit…

- #16704: DOC: improve some MSVC links in toolchain.rst

- #16705: MAINT: add `__bool__` method to spatial.transform.Rotation

- #16706: CI: add Meson version number in environment.yml to rebuild Docker…

- #16707: DOC: expand the `scipy.interpolate` tutorial

- #16712: BUG: Update _svds.py: orthogonalize eigenvectors from arpack…

- #16714: ENH: stats.bootstrap: extend previous bootstrap result

- #16715: DOC: interpolate: add an example of splPrep/PPoly.from_spline…

- #16717: DOC: reformat seed docstrings

- #16722: MAINT: additional test truthiness and length the empty Rotation

- #16730: MAINT: interpolate: use _fitpack_impl in fitpack2

- #16731: ENH: interpolate.KroghInterpolator: raise warning about numerical…

- #16732: DOC: Replace runtests.py with dev.py where appropriate

- #16733: DOC: Add link to development workflow

- #16735: DOC: forward port 1.9.0 relnotes

- #16738: REL: DOC: update version switcher

- #16739: CI: move the py311-dev job over to Meson

- #16740: DOC: Fix Sphinx markup.

- #16742: CI: move test_numpy_main to linux_meson

- #16743: DEP: interpolate: revert docstring only deprecation of fitpack…

- #16747: DOC: sparse.linalg: Fix output in an example in the lobpcg docstring.

- #16753: DOC: Integrate: Add improper integral examples for `dblquad`…

- #16754: DOC: optimize: Fix mistake in a linprog example.

- #16755: TST: sparse.linalg: Loosen tolerance for the lobpcg test ‘test_tolerance_float32’

- #16756: TST: test fixes for pypy

- #16758: ENH: Release the GIL while computing KDE kernel estimate

- #16761: DOC: add logo to readme.

- #16762: MAINT: stats: mark slow tests

- #16766: DOC: toolchain: fix numpy dependency for 1.7.2/3

- #16770: ENH: stats: use Boost implementation of skewnorm cdf/ppf

- #16772: DOC: add one :math: to docstring for consistency

- #16776: BUG: Set nperseg size to the size of an already-initialized window…

- #16778: MAINT: fix a couple of Mypy errors that appeared recently

- #16779: TST: Interpolate: Move incorrectly located NDInterpolator tests

- #16788: DOC, TST: clarify Voronoi Qz

- #16790: ENH: stats.invgauss: use Boost implementation of ppf/isf

- #16791: MAINT: stats.skewnorm: fix fit when data skewness is greater…

- #16793: DOC: optimize: add tutorial for milp

- #16795: DOC: Embed method signatures of `spatial.transform.Rotation`

- #16797: ENH add extrapolate to BSpline.design_matrix

- #16799: DOC: optimize.root_scalar: improve parametrization of methods

- #16800: MAINT: remove `_lib/_c99compat.h` and use C99 rather than `npy_math.h`…

- #16801: ENH: added the spectral 2-norm to _norm.py

- #16804: ENH: stats.weibull_min: override fit

- #16806: DEV: update pydevtool version to propagate exit codes

- #16809: Doc: Added missing “import numpy as np” to docstring examples…

- #16811: DOC: fix broken links

- #16816: MAINT: special: remove one `libnpymath` dependency; more `NPY_`…

- #16817: MAINT: remove `NPY_INLINE`, use `inline` instead

- #16818: MAINT: update PROPACK git submodule to get rid of prints in test…

- #16826: MAINT: fix some build warnings from `special/ellip_harm.pxd`

- #16828: DOC: add NumPy import in scipy.io examples

- #16829: Interpn nonscalar followup

- #16830: DOC: Add plot to circmean docstring

- #16831: DOC: special: Several docstring updates.

- #16832: DOC: add NumPy import in scipy.optimize examples

- #16834: DOC: Improve circular stats doc

- #16835: ENH: stats.ttest_1samp: add confidence_interval and df

- #16837: DOC: interpolate: small example code improvement for `BSpline.basis_element`

- #16840: ENH: BSplines.design_matrix performance improvement

- #16843: ENH: Handle np array methods in stats.binned_statistic_dd

- #16847: DOC: interpolate.{RegularGridInterpolator, interpn} add note…

- #16848: ENH: stats.anderson: add fit parameters to result

- #16853: DOC: interpolate: improve `interpolate.make_interp.spline`…

- #16854: MAINT: Delay `pooch` import error for `scipy.datasets`

- #16855: Roadmap update: scipy.interpolate and Fortran libs

- #16856: DOC: interpolate: add default spline degree value for `InterpolatedUnivariateSpline`

- #16857: ENH : remove an expected warning in BarycentricInterpolator

- #16858: ENH: Modify scipy.optimize.least_squares to accept bounds of…

- #16860: DOC: interpolate: improve spline smoothing parameter docs.

- #16863: DOC: Adding docs contribution guidelines

- #16864: DOC: stats: Some updates:

- #16865: DOC: interpolate: improve `make_lsq_spline` docs

- #16866: DEP, DOC: Show deprecated methods in docs and fix overwriting…

- #16867: DOC: fix an accuracy issue in the docstring of `Rotation.align_vectors`

- #16869: DOC: Added missing ‘import numpy as np’ to docstring examples…

- #16873: MAINT: stats.multinomial: don’t alter p[-1] when p[:-1].sum()…

- #16874: DOC: signal: Add ‘Examples’ to the ‘normalize’ docstring.

- #16884: DOC: improve installing from source instructions

- #16885: TST: Interpolate: Parameterise RegularGridInterpolator tests

- #16886: CI: wheels only on scipy [skip azp][skip github]

- #16887: DOC: optimize.linprog: adjust tutorial to address gh16531

- #16888: DOC: outline how cibuildwheel is triggered and runs in CI

- #16889: MAINT: interpolate: Remove a couple unused imports.

- #16890: ENH: optimize.OptimizeResult: improve pretty-printing

- #16891: TST: Interpolate: rename test so that is executed

- #16893: DOC: add diagram explaining how Docker images get built and used…

- #16896: DOC: Fix broken link in the “Additional Git Resources” page.

- #16897: Pass down mip_rel_gap to the HiGHS optimizer

- #16899: DOC: add legend to rv_histogram plot

- #16902: ENH: stats.ttest_rel: add confidence_interval to result

- #16903: DOC: interpolate: add actual smoothing condition for `UnivariateSpline`

- #16906: DOC: fixes for refguide check issues

- #16907: BUG: stats: expect method of the vonmises distribution

- #16910: MAINT: forward port 1.9.1 relnotes

- #16913: ENH:interpolate: allow interp1d to take single value

- #16916: DOC: add note about using interpn for data on a regular grid

- #16923: MAINT: integrate.qmc_quad: add QMC quadrature

- #16924: Fix compilation with -Wincompatible-function-pointer-types

- #16931: DOC: add details on Meson build debugging and introspection

- #16933: MAINT : interpolate: added test for DivideByZero warning silencing…

- #16937: MAINT: refer to python3 in refguide_check

- #16939: MAINT: stats: move `_contains_nan` function to `_lib._util.py`

- #16940: DOC: Documentation note update for truncnorm

- #16941: MAINT: support logpdf in NumericalInverseHermite (stats.sampling)

- #16948: DOC: sparse.linalg.svds: fix intermittent refguide check failure

- #16950: DOC: Add examples for common Bessel functions

- #16951: ENH: stats.fit: add plot_types to FitResult.plot

- #16953: DEV: update dev.py to only install changed files

- #16955: BLD: fix up or suppress Fortran build warnings

- #16956: BLD: fix meson version checks for MSVC

- #16958: ENH: stats.crosstab: convert output tuple to bunch

- #16959: DOC: Add example for morlet in scipy.signal

- #16960: DOC: Fix indentation in benchmarking.rst

- #16963: DOC: Update 2 links to point to stable.

- #16967: ENH: stats.goodness_of_fit: a general goodness of fit test

- #16968: ENH: Close parenthesis in numpy version warning

- #16976: DOC: stats.qmc: fix description of seed parameter

- #16980: DOC: fix duplicate word typos.

- #16986: DOC: Fix link to rendered docs in documentation guide

- #16987: ENH: stats.gaussian_kde: replace use of inv_cov in logpdf

- #16989: DOC: edited t_span parameter description in integrate.solve_ivp

- #16990: CI: enable uploads for (weekly) nightlies and update how action…

- #16992: CI: upgrade CI image to run on Ubuntu 22.04 instead of 20.04

- #16995: DOC: stats: fix incorrectly documented statistic attribute for…

- #17003: DOC: Add examples for a few Bessel functions

- #17005: CI: pin OpenBLAS to specific build in macOS job to avoid gges…

- #17006: ENH: stats.spearmanr: add statistic attribute to result object…

- #17007: ENH: stats.kendalltau: add statistic attribute to result object…

- #17008: ENH: stats.weightedtau: add statistic attribute to result object

- #17009: Revert “CI: pin OpenBLAS to specific build in macOS job to avoid…

- #17014: MAINT: remove unused variables and imports

- #17016: ENH: stats.pearsonr, stats.pointbiserialr: add statistic/correlation…

- #17017: ENH: stats.somersd: add correlation attribute to result object

- #17021: FIX: `dev.py build` parallelism behaviour and fixed typos

- #17022: Explain where LIL comes from

- #17027: Fix explanation of LIst of List sparse matrix

- #17029: CI: cirrus for building aarch64

- #17030: ENH: stats.permutation_test: improve performance of samples/pairings…

- #17032: TST: stats.fit: fix random state

- #17034: TST: stats.jarque_bera: fix test failure due to NumPy update

- #17036: DEV: Update GPG key in Docker [Gitpod]

- #17038: deduplicate `splint` in FITPACK wrappers; take 3

- #17039: ENH: add a `stats.expectile` function

- #17041: DOC: Add examples for integrals of Bessel functions

- #17048: DOC:signal: Fix typo in TransferFunction

- #17049: TST: stats.jarque_bera: fix test failure due to NumPy update

- #17051: ENH: support complex functions in integrate.quad

- #17052: BLD: implement symbol hiding for Meson through a linker version…

- #17057: Fix or avoid various test failures that are showing up in CI

- #17062: Add location and sign to KS test result

- #17063: CI: fix uploading of nightly wheels

- #17068: MAINT: Removed unused imports.

- #17071: DOC: update maxfun in scipy.optimize.minimize(method=’L-BFGS-B’)…

- #17073: DOC: examples for derivatives of Bessel functions

- #17076: DOC: spatial: Copy-edit the voronoi_plot_2d example.

- #17079: BUG: fix `signal.sosfilt` issue with complex dtypes and Intel…

- #17081: DOC: Fix formatting in svds docstrings

- #17083: DOC: Fix broken link for environment variables NumPy doc

- #17085: DOC: optimize: add link to SciPy cookbooks milp tutorials

- #17091: MAINT: interpolate remove duplication of FITPACK interface `sproot`.

- #17093: ENH: Improves behavior of scipy.optimize.linprog (#17074)

- #17094: DOC: examples for roots of Bessel functions

- #17099: BLD: turn off fast-math for Intel compilers

- #17103: ENH: stats.Covariance: add CovViaDiagonal

- #17106: CI: fix testing of `SCIPY_USE_PYTHRAN=0`, and upgrade to pythran…

- #17108: DOC: Reformulate ufunc description in special doc page

- #17109: BLD: Ensure Intel Fortran handles negative 0 as expected.

- #17110: DOC: add Numpy import to scipy.sparse examples

- #17112: ENH: Add support for bounds class in curve_fit

- #17115: DOC: add Numpy import to examples

- #17117: ENH: stats.logistic: override fit for remaining cases

- #17118: ENH: Support for complex functions in binned_statistic_dd

- #17122: ENH: remove duplicate function call

- #17126: MAINT, ENH: scipy.stats: Refactor `directionalmean` to return…

- #17128: ENH: stats.covariance: add CovViaCholesky

- #17130: DOC: remove inconsistent messages

- #17135: ENH: stats.Covariance: specifying covariance matrix by its eigendecomposition

- #17138: CI: add permission to GH actions.

- #17140: BUG: Fix issue with shgo not correctly passing jac to minimizer

- #17141: ENH: stats.fit: add maximum spacing estimation

- #17144: DOC: replace `set_tight_layout` with `set_layout_engine`…

- #17147: BENCH: remove `–quick` flag to `asv run` in dev.py

- #17149: MAINT: remove certifi py3.11 warning filter

- #17152: ENH/MAINT: `qmc.LatinHypercube`: deprecate centered with scramble

- #17157: ENH: Added value_indices() function to scipy.ndimage

- #17159: MAINT: spatial: Skip `test_massive_arr_overflow` on systems…

- #17161: MAINT: stats.sampling.NumericalInverseHermite: private distribution…

- #17163: ENH: Add `download_all` utility method & script

- #17169: MAINT: special: Loosen the tolerance for a test of powm1.

- #17170: MAINT: better handling of mode/center outside of the domain in…

- #17175: MAINT: forward port 1.9.2 relnotes

- #17177: DOC: stats: Fix versionadded markup for odds_ratio

- #17178: DOC: interpolate: discuss failure modes of SmoothBivariateSpline

- #17180: DEP: interpolate: deprecate interp2d

- #17181: CI: Fix when wheels are built for staging

- #17182: MAINT: fix typo “mat[r]ix”

- #17183: DOC: examples for `ive` and `kve`

- #17184: DOC: stats: Fix the 1.9.0 release note about the ‘weights’ parameter…

- #17188: DOC: update version switcher for 1.9.2

- #17198: MAINT: stats: remove use of interp2d from levy_stable._fitstart

- #17199: DOC: Fix typos in IIR design argument documentation

- #17215: MAINT: remove code for old numpy versions

- #17217: MAINT: interpolate/RGI: make all _evaluate_YYY methods use self.values

- #17223: DOC: linalg: Expand the qz example.

- #17227: TST: stats.sampling.NumericalInverseHermite: filter all RuntimeWarnings

- #17230: ENH: subclass-friendly refactor RegularGridInterpolator

- #17233: DOC: examples for Struve functions

- #17236: stats/distributions: make rv_sample public, allow subclassing

- #17237: ENH: add conditional_table to SciPy.stats.

- #17238: DOC: linalg: Several docstring updates.

- #17243: DOC: special: Updates for smirnov and smirnovi

- #17247: MAINT: optimize.leastsq: fix covariance not SPD

- #17256: doc/RegularizedIncompleteBetaFunction

- #17258: MAINT: stats.multivariate_normal: frozen rvs should pass cov_object…

- #17259: DOC: CI: Add note about skipping Cirrus CI.

- #17262: MAINT: forward port 1.9.3 relnotes

- #17264: DOC: update version switcher for 1.9.3

- #17273: TST: linalg: temporarily silence failure in test_solve_discrete_are

- #17276: MAINT/ENH: stats.multivariate_normal.rvs: fix shape and speed…

- #17277: ENH: Random unit vector distribution

- #17279: TST: mark no_segmentation fault test for DIRECT as xslow

- #17280: DOC: example for voigt_profile

- #17283: STY: stats.Covariance: fix lint issue in `main`

- #17284: MAINT: special: Loosen tolerance in test_sinpi() and test_cospi().

- #17291: Cythonize 2D linear code path in RegularGridInterpolator

- #17296: Fix test fails caused by pytest 7.1.3

- #17298: DOC: Add examples to Stats Anderson

- #17299: DOC: interpolate: Extrapolation tips and tricks

- #17301: DOC, MAINT: remove use of inspect.formatargspec during doc build

- #17302: MAINT: special: Use boost for special.hyp1f1 with real inputs.

- #17303: Remove handwritten `_fitpack.spalde` : a rebase of pr/17145

- #17304: ENH: stats: implement _sf and _isf for invweibull.

- #17305: BUG: interpolate: allow zero-sized data arrays

- #17313: DOC: interpolate: add a note on data with different scales

- #17314: DOC: interpolate/tutorial: add a length-1 example

- #17315: MAINT: special: Remove tests of numpy functions arccosh, arcsinh…

- #17317: DOC: interpolate/tutorial: add an example for equally-spaced…

- #17319: DOC: references and examples for huber/pseudo_huber

- #17331: CI: On Azure, pin pytest-xdist to version 2.5.0

- #17340: DOC: clarify use of bounds with basinhopping

- #17345: ENH: commit to close #1261 (trac #734) by adding xtol argument.

- #17346: BLD: fix `SCIPY_USE_PYTHRAN=0` usage for the Meson build

- #17349: DOC: Fix signal docstrings; finish adding ‘import numpy as np’

- #17351: CI: Pin ninja==1.10.2.4 to avoid bug in 1.11.1 that breaks meson.

- #17355: DOC: spatial: Fix some docstrings.

- #17359: CI: ninja packages are repaired, so unpin.

- #17361: DOC: examples for gdtr and gdtrc

- #17363: DOC: adjust the deprecation notice for interp2d

- #17366: DOC/MAINT: clean doctests namespace

- #17367: DOC: Add missing `build` parameter to `dev.py`

- #17369: DOC: consistent use of `=` for argument documentation

- #17371: DOC: update RBF tutorial with new `RBFInterpolator`

- #17372: BLD: update to Meson 0.64.0, remove `pure: false` lines

- #17374: DOC: `special.itairy` example

- #17376: DOC: Add examples to stats.mstats.find_repeats

- #17395: DOC: optimize: minimize doc to reflect tnc’s deprecation of maxiter

- #17397: BUG: signal: Change types in the upfirdn utility function _output_len()

- #17399: DOC: signal.iirdesign: remove `bessel` from supported filter…

- #17400: TST: use norm in signal.TestBessel.test_fs_param

- #17409: DOC: Examples for special functions related to F distribution

- #17415: MAINT: Python 3.8 typing simplify

- #17416: BLD: fix a lot of configuration warnings by using `fs.copyfile`

- #17417: BUG: integrate: simpson didn’t handle integer n-d arrays.

- #17418: DOC: special: Remove duplicate imports from special examples.

- #17423: Documentation to fix #17089

- #17426: BLD: fix for propack and boost submodules - don’t ask for native…

- #17427: DOC: optimize.linprog: adjust HiGHS URL

- #17430: BLD: define NDEBUG to mimic cmake release build

- #17433: MAINT/TST: improved test coverage for DIRECT optimizer

- #17439: DOC: Improve example for uniform_direction distribution

- #17446: MAINT: stats.gaussian_kde: error early if n_features > n_data

- #17447: MAINT: optimize.fminbound/minimize_scalar: add references, distinguish…

- #17448: MAINT: optimize.minimize_scalar: always acknowledge ‘bounds’…

- #17449: MAINT: remove remaining occurrences of unicode

- #17457: DOC: Double Integral Example Typo

- #17466: BUG: stats: Fix for gh-17444.

- #17467: BUG: ndimage: Don’t use np.int0 (it is the same as np.intp)

- #17469: BUG: stats: Random parameters in `pytest.mark.parametrize()`…

- #17471: MAINT: stats.rv_count: revert gh-17236

- #17472: Getting rid of _make_points_and_values_ascending and its unnecessary…

- #17478: ENH: Add clear_cache utility for `scipy.datasets`

- #17481: MAINT: special: remove more `npy_math.h` usage

- #17482: MAINT: stats: Unconditionally disable boost double promotion.

- #17484: DOC: remove hard-coded value from PoissonDisk example

- #17485: ENH: increase range of vonmises entropy

- #17487: CI: pin setuptools for musllinux

- #17489: BUG: ndimage: Work around gh-17270

- #17496: DEV: dev.py: make lint task consistent with CI

- #17500: MAINT: special: Remove references to nonexistent function exp1m.

- #17501: Minor: Misspelling typos fixed in _svds.py

- #17504: CI: PRs run against merged main [skip circle][skip gh][skip azp]

- #17512: TST: interpolate: stop skipping a test with zero-sized arrays

- #17513: BUG: optimize: fixed issue 17380

- #17526: BUG, DOC: stats: fix `[source]` button redicting to the wrong…

- #17534: DOC: 1.10.0 release notes

- #17536: DOC: Examples for `yve` and `jve`

- #17540: DOC: fix documentation of `make_smoothing_spline`

- #17543: CI: fix gh17539 failures of the alpine linux run

- #17545: BUG: special: Fix handling of subnormal input for lambertw.

- #17551: BUG Fix: Update lobpcg.py to turn history arrays into lists for…

- #17569: MAINT: version bounds for 1.10.0rc1/relnotes fixes

- #17579: Revert “ENH: stats.ks_2samp: Pythranize remaining exact p-value…

- #17580: CI: native cp38-macosx_arm64 [wheel build][skip azp][skip circle][ski…

- #17583: MAINT: 1.10.0rc1 backports round 2

- #17591: MAINT: stats.pearsonr: raise error for complex input

- #17600: DOC: update version switcher for 1.10

- #17611: MAINT: Update ascent.dat file hash

- #17614: MAINT: optimize.milp: don’t warn about `mip_rel_gap` option

- #17627: MAINT: Cast `datasets.ascent` image to float64

- #17634: MAINT: casting errstate for NumPy 1.24

- #17638: MAINT, TST: alpine/musl segfault shim

- #17640: MAINT: prepare for SciPy 1.10.0rc2

- #17645: MAINT: stats.rankdata: ensure consistent shape handling

- #17653: MAINT: pybind11 win exclusion

- #17656: MAINT: 1.10.0rc2 backports, round two

- #17662: Fix undefined behavior within scipy.fft

- #17686: REV: integrate.qmc_quad: delay release to SciPy 1.11.0

- #17689: REL: integrate.qmc_quad: remove from release notes