Skip to main content
`Ctrl`+`K`

# SciPy 1.5.0 Release Notes

SciPy 1.5.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.5.x branch, and on adding new features on the master branch.

This release requires Python 3.6+ and NumPy 1.14.5 or greater.

For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.

## Highlights of this release

- wrappers for more than a dozen new `LAPACK` routines are now available in `scipy.linalg.lapack`

- Improved support for leveraging 64-bit integer size from linear algebra backends

- addition of the probability distribution for two-sided one-sample Kolmogorov-Smirnov tests

### New features

## `scipy.cluster` improvements

Initialization of `scipy.cluster.vq.kmeans2` using `minit="++"` had a quadratic complexity in the number of samples. It has been improved, resulting in a much faster initialization with quasi-linear complexity.

`scipy.cluster.hierarchy.dendrogram` now respects the `matplotlib` color palette

## `scipy.fft` improvements

A new keyword-only argument `plan` is added to all FFT functions in this module. It is reserved for passing in a precomputed plan from libraries providing a FFT backend (such as `PyFFTW` and `mkl-fft`), and it is currently not used in SciPy.

## `scipy.integrate` improvements

## `scipy.interpolate` improvements

## `scipy.io` improvements

`scipy.io.wavfile` error messages are more explicit about what’s wrong, and extraneous bytes at the ends of files are ignored instead of raising an error when the data has successfully been read.

`scipy.io.loadmat` gained a `simplify_cells` parameter, which if set to `True` simplifies the structure of the return value if the `.mat` file contains cell arrays.

`pathlib.Path` objects are now supported in `scipy.io` Matrix Market I/O functions

## `scipy.linalg` improvements

`scipy.linalg.eigh` has been improved. Now various `LAPACK` drivers can be selected at will and also subsets of eigenvalues can be requested via `subset_by_value` keyword. Another keyword `subset_by_index` is introduced. Keywords `turbo` and `eigvals` are deprecated.

Similarly, standard and generalized Hermitian eigenvalue `LAPACK` routines `?<sy/he>evx` are added and existing ones now have full `_lwork` counterparts.

Wrappers for the following `LAPACK` routines have been added to `scipy.linalg.lapack`:

- `?getc2`: computes the LU factorization of a general matrix with complete

    pivoting

- `?gesc2`: solves a linear system given an LU factorization from `?getc2`

- `?gejsv`: computes the singular value decomposition of a general matrix

    with higher accuracy calculation of tiny singular values and their corresponding singular vectors

- `?geqrfp`: computes the QR factorization of a general matrix with

    non-negative elements on the diagonal of R

- `?gtsvx`: solves a linear system with general tridiagonal matrix

- `?gttrf`: computes the LU factorization of a tridiagonal matrix

- `?gttrs`: solves a linear system given an LU factorization from `?gttrf`

- `?ptsvx`: solves a linear system with symmetric positive definite

    tridiagonal matrix

- `?pttrf`: computes the LU factorization of a symmetric positive definite

    tridiagonal matrix

- `?pttrs`: solves a linear system given an LU factorization from `?pttrf`

- `?pteqr`: computes the eigenvectors and eigenvalues of a positive definite

    tridiagonal matrix

- `?tbtrs`: solves a linear system with a triangular banded matrix

- `?csd`: computes the Cosine Sine decomposition of an orthogonal/unitary

    matrix

Generalized QR factorization routines (`?geqrf`) now have full `_lwork` counterparts.

`scipy.linalg.cossin` Cosine Sine decomposition of unitary matrices has been added.

The function `scipy.linalg.khatri_rao`, which computes the Khatri-Rao product, was added.

The new function `scipy.linalg.convolution_matrix` constructs the Toeplitz matrix representing one-dimensional convolution.

## `scipy.ndimage` improvements

## `scipy.optimize` improvements

The finite difference numerical differentiation used in various `minimize` methods that use gradients has several new features:

- 2-point, 3-point, or complex step finite differences can be used. Previously only a 2-step finite difference was available.

- There is now the possibility to use a relative step size, previously only an absolute step size was available.

- If the `minimize` method uses bounds the numerical differentiation strictly obeys those limits.

- The numerical differentiation machinery now makes use of a simple cache, which in some cases can reduce the number of function evaluations.

- `minimize`’s `method= 'powell'` now supports simple bound constraints

There have been several improvements to `scipy.optimize.linprog`:

- The `linprog` benchmark suite has been expanded considerably.

- `linprog`’s dense pivot-based redundancy removal routine and sparse presolve are faster

- When `scikit-sparse` is available, solving sparse problems with `method='interior-point'` is faster

The caching of values when optimizing a function returning both value and gradient together has been improved, avoiding repeated function evaluations when using a `HessianApproximation` such as `BFGS`.

`differential_evolution` can now use the modern `np.random.Generator` as well as the legacy `np.random.RandomState` as a seed.

## `scipy.signal` improvements

A new optional argument `include_nyquist` is added to `freqz` functions in this module. It is used for including the last frequency (Nyquist frequency).

`scipy.signal.find_peaks_cwt` now accepts a `window_size` parameter for the size of the window used to calculate the noise floor.

## `scipy.sparse` improvements

Outer indexing is now faster when using a 2d column vector to select column indices.

scipy.sparse.lil.tocsr is faster

Fixed/improved comparisons between pydata sparse arrays and sparse matrices

BSR format sparse multiplication performance has been improved.

`scipy.sparse.linalg.LinearOperator` has gained the new `ndim` class attribute

## `scipy.spatial` improvements

`scipy.spatial.geometric_slerp` has been added to enable geometric spherical linear interpolation on an n-sphere

`scipy.spatial.SphericalVoronoi` now supports calculation of region areas in 2D and 3D cases

The tree building algorithm used by `cKDTree` has improved from quadratic worst case time complexity to loglinear. Benchmarks are also now available for building and querying of balanced/unbalanced kd-trees.

## `scipy.special` improvements

The following functions now have Cython interfaces in cython_special:

- `scipy.special.erfinv`

- `scipy.special.erfcinv`

- `scipy.special.spherical_jn`

- `scipy.special.spherical_yn`

- `scipy.special.spherical_in`

- `scipy.special.spherical_kn`

`scipy.special.log_softmax` has been added to calculate the logarithm of softmax function. It provides better accuracy than `log(scipy.special.softmax(x))` for inputs that make softmax saturate.

## `scipy.stats` improvements

The function for generating random samples in `scipy.stats.dlaplace` has been improved. The new function is approximately twice as fast with a memory footprint reduction between 25 % and 60 % (see gh-11069).

`scipy.stats` functions that accept a seed for reproducible calculations using random number generation (e.g. random variates from distributions) can now use the modern `np.random.Generator` as well as the legacy `np.random.RandomState` as a seed.

The `axis` parameter was added to `scipy.stats.rankdata`. This allows slices of an array along the given axis to be ranked independently.

The `axis` parameter was added to `scipy.stats.f_oneway`, allowing it to compute multiple one-way ANOVA tests for data stored in n-dimensional arrays. The performance of `f_oneway` was also improved for some cases.

The PDF and CDF methods for `stats.geninvgauss` are now significantly faster as the numerical integration to calculate the CDF uses a Cython based `LowLevelCallable`.

Moments of the normal distribution (`scipy.stats.norm`) are now calculated using analytical formulas instead of numerical integration for greater speed and accuracy

Moments and entropy trapezoidal distribution (`scipy.stats.trapz`) are now calculated using analytical formulas instead of numerical integration for greater speed and accuracy

Methods of the truncated normal distribution (`scipy.stats.truncnorm`), especially `_rvs`, are significantly faster after a complete rewrite.

The fit method of the Laplace distribution, `scipy.stats.laplace`, now uses the analytical formulas for the maximum likelihood estimates of the parameters.

Generation of random variates is now thread safe for all SciPy distributions. 3rd-party distributions may need to modify the signature of the `_rvs()` method to conform to `_rvs(self, ..., size=None, random_state=None)`. (A one-time VisibleDeprecationWarning is emitted when using non-conformant distributions.)

The Kolmogorov-Smirnov two-sided test statistic distribution (`scipy.stats.kstwo`) was added. Calculates the distribution of the K-S two-sided statistic `D_n` for a sample of size n, using a mixture of exact and asymptotic algorithms.

The new function `median_abs_deviation` replaces the deprecated `median_absolute_deviation`.

The `wilcoxon` function now computes the p-value for Wilcoxon’s signed rank test using the exact distribution for inputs up to length 25. The function has a new `mode` parameter to specify how the p-value is to be computed. The default is `"auto"`, which uses the exact distribution for inputs up to length 25 and the normal approximation for larger inputs.

Added a new Cython-based implementation to evaluate guassian kernel estimates, which should improve the performance of `gaussian_kde`

The `winsorize` function now has a `nan_policy` argument for refined handling of `nan` input values.

The `binned_statistic_dd` function with `statistic="std"` performance was improved by ~4x.

`scipy.stats.kstest(rvs, cdf,...)` now handles both one-sample and two-sample testing. The one-sample variation uses `scipy.stats.ksone` (or `scipy.stats.kstwo` with back off to `scipy.stats.kstwobign`) to calculate the p-value. The two-sample variation, invoked if `cdf` is array_like, uses an algorithm described by Hodges to compute the probability directly, only backing off to `scipy.stats.kstwo` in case of overflow. The result in both cases is more accurate p-values, especially for two-sample testing with smaller (or quite different) sizes.

`scipy.stats.maxwell` performance improvements include a 20 % speed up for fit()` and 5 % for `pdf()`

`scipy.stats.shapiro` and `scipy.stats.jarque_bera` now return a named tuple for greater consistency with other `stats` functions

### Deprecated features

## `scipy` deprecations

## `scipy.special` changes

The `bdtr`, `bdtrc`, and `bdtri` functions are deprecating non-negative non-integral `n` arguments.

## `scipy.stats` changes

The function `median_absolute_deviation` is deprecated. Use `median_abs_deviation` instead.

The use of the string `"raw"` with the `scale` parameter of `iqr` is deprecated. Use `scale=1` instead.

### Backwards incompatible changes

## `scipy.interpolate` changes

## `scipy.linalg` changes

The output signatures of `?syevr`, `?heevr` have been changed from `w, v, info` to `w, v, m, isuppz, info`

The order of output arguments `w`, `v` of `<sy/he>{gv, gvd, gvx}` is swapped.

## `scipy.signal` changes

The output length of `scipy.signal.upfirdn` has been corrected, resulting outputs may now be shorter for some combinations of up/down ratios and input signal and filter lengths.

`scipy.signal.resample` now supports a `domain` keyword argument for specification of time or frequency domain input.

## `scipy.stats` changes

### Other changes

Improved support for leveraging 64-bit integer size from linear algebra backends in several parts of the SciPy codebase.

Shims designed to ensure the compatibility of SciPy with Python 2.7 have now been removed.

Many warnings due to unused imports and unused assignments have been addressed.

Many usage examples were added to function docstrings, and many input validations and intuitive exception messages have been added throughout the codebase.

Early stage adoption of type annotations in a few parts of the codebase

### Authors

- @endolith

- Hameer Abbasi

- ADmitri +

- Wesley Alves +

- Berkay Antmen +

- Sylwester Arabas +

- Arne Küderle +

- Christoph Baumgarten

- Peter Bell

- Felix Berkenkamp

- Jordão Bragantini +

- Clemens Brunner +

- Evgeni Burovski

- Matthias Bussonnier +

- CJ Carey

- Derrick Chambers +

- Leander Claes +

- Christian Clauss

- Luigi F. Cruz +

- dankleeman

- Andras Deak

- Milad Sadeghi DM +

- jeremie du boisberranger +

- Stefan Endres

- Malte Esders +

- Leo Fang +

- felixhekhorn +

- Isuru Fernando

- Andrew Fowlie

- Lakshay Garg +

- Gaurav Gijare +

- Ralf Gommers

- Emmanuelle Gouillart +

- Kevin Green +

- Martin Grignard +

- Maja Gwozdz

- Sturla Molden

- gyu-don +

- Matt Haberland

- hakeemo +

- Charles Harris

- Alex Henrie

- Santi Hernandez +

- William Hickman +

- Till Hoffmann +

- Joseph T. Iosue +

- Anany Shrey Jain

- Jakob Jakobson

- Charles Jekel +

- Julien Jerphanion +

- Jiacheng-Liu +

- Christoph Kecht +

- Paul Kienzle +

- Reidar Kind +

- Dmitry E. Kislov +

- Konrad +

- Konrad0

- Takuya KOUMURA +

- Krzysztof Pióro

- Peter Mahler Larsen

- Eric Larson

- Antony Lee

- Gregory Lee +

- Gregory R. Lee

- Chelsea Liu

- Cong Ma +

- Kevin Mader +

- Maja Gwóźdź +

- Alex Marvin +

- Matthias Kümmerer

- Nikolay Mayorov

- Mazay0 +

- 7. 4. McBain

- Nicholas McKibben +

- Sabrina J. Mielke +

- Sebastian J. Mielke +

- Miloš Komarčević +

- Shubham Mishra +

- Santiago M. Mola +

- Grzegorz Mrukwa +

- Peyton Murray

- Andrew Nelson

- Nico Schlömer

- nwjenkins +

- odidev +

- Sambit Panda

- Vikas Pandey +

- Rick Paris +

- Harshal Prakash Patankar +

- Balint Pato +

- Matti Picus

- Ilhan Polat

- poom +

- Siddhesh Poyarekar

- Vladyslav Rachek +

- Bharat Raghunathan

- Manu Rajput +

- Tyler Reddy

- Andrew Reed +

- Lucas Roberts

- Ariel Rokem

- Heshy Roskes

- Matt Ruffalo

- Atsushi Sakai +

- Benjamin Santos +

- Christoph Schock +

- Lisa Schwetlick +

- Chris Simpson +

- Leo Singer

- Kai Striega

- Søren Fuglede Jørgensen

- Kale-ab Tessera +

- Seth Troisi +

- Robert Uhl +

- Paul van Mulbregt

- Vasiliy +

- Isaac Virshup +

- Pauli Virtanen

- Shakthi Visagan +

- Jan Vleeshouwers +

- Sam Wallan +

- Lijun Wang +

- Warren Weckesser

- Richard Weiss +

- wenhui-prudencemed +

- Eric Wieser

- Josh Wilson

- James Wright +

- Ruslan Yevdokymov +

- Ziyao Zhang +

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

- #1455: ellipord does returns bogus values if gstop or gpass are negative…

- #1968: correlate2d’s output does not agree with correlate’s output in…

- #2744: BUG: optimize: ‘**kw’ argument of ‘newton_krylov’ is not documented

- #4755: TypeError: data type “<i0” not understood

- #4921: scipy.optimize maxiter option not working as expected

- #5144: RuntimeWarning on csgraph.shortest_path when edge lengths are…

- #5309: Documentation of ‘hybr’ and ‘lm’ inconsistent in optimize.root

- #6026: Replace approx_grad with _numdiff.approx_derivative in scipy.optimize

- #6502: Computing Eigenvalues in an Interval with LAPACK

- #7058: Errors in special.bdtri and special.bdtr for non-integer k values

- #7700: SuperLU does not respect perm_c=”NATURAL”

- #7895: Improvements to io.loadmat

- #8205: ValueError in scipy.linalg.eigvalsh for large matrix

- #8278: Memory limit for scipy.sparse.linalg.spsolve with scikit-umfpack

- #8327: scipy.stats.mstats.winsorize NaN handling

- #8341: scipy.stats.ks_2samp for masked and unmasked data give different…

- #8748: scipy.stats.kstest for same distribution: p-values nonuniform

- #9042: optimize: Incorrect statement about `jac` in the `minimize`…

- #9197: problem with scipy.signal.butter with 1000+ points array

- #9212: EIGH very very slow –> suggesting an easy fix

- #9553: ndimage routines behave badly when output has memory overlap…

- #9632: ndimage.maximum_filter undocumented behaviour using footprint…

- #9658: scipy.optimize.minimize(method=’COBYLA’) not threadsafe

- #9710: stats.weightedtau([1], [1.0]) SEGFAULTs

- #9797: Master Tracker for some Kolmogorov-Smirnov test Issues

- #9844: scipy.signal.upfirdn gives different length matrix versus MATLAB…

- #9872: scipy.signal.convolve is slower when vectorized

- #9913: BUG: No dt in StateSpace operations

- #10014: Distribution names `weibull_min`and `weibull_max` should…

- #10159: BUG: stats: chisquare returns incorrect results for arrays of…

- #10302: scipy.fft: Add a `plan` argument

- #10332: ‘Incomplete wav chunk’ inconsistent/reason unknown

- #10441: Remove uses of `numpy.dual`?

- #10558: Document implicit sum in csr_matrix() constructor

- #10788: LU with full pivoting

- #10841: Unexpected behavior in linalg.blas.dtrmm wrapper

- #10919: optimize._lbfgsb setulb() function violates parameter bounds

- #10963: kstest, ks_2samp: confusing `mode` argument descriptions

- #11022: Unexpected Result in factorial function with NaN input

- #11028: Documentation error in optimize.minimize

- #11058: Adding logsoftmax function

- #11076: ValueError: Unknown wave file format

- #11090: Misconception of the median absolute deviation in stats?

- #11095: BUG: find_peaks_cwt test failures in 32-bit Linux wheels

- #11107: scipy.io.mmread generated an error “TypeError: startswith first…

- #11123: Add wrapper for ?gttrf/?gttrs

- #11128: OverflowError in resample_poly (upfirdn)

- #11132: Possible bug: rv_discret.ppf for percentiles 0 and 100 and loc…

- #11163: Comparisons between scipy spmatrix and can sparse.SparseArray…

- #11168: Generalized Pareto variance inaccurate for concentrations near…

- #11169: Add wrapper for ?geqrfp

- #11184: 2-sided Kolmogorov Smirnov returns p-value of 1

- #11185: The .roots() or solve() function of scipy.interpolate.CubicHermiteSpline…

- #11190: Add wrapper for ?tbtrs

- #11200: Can no longer slice csr_matrix in 1.3.0

- #11207: _minimize_scalar_bounded: reference before assignment

- #11216: linprog: interior-point: Cholmod reordering can be reused

- #11223: Add wrappers for ?pttrf, ?pttrs

- #11224: Add wrapperfor ?pteqr

- #11235: MAINT: Missleading Error Message for IIR Filter

- #11244: Missing reference in `scipy.optimize.line_search`

- #11262: Hermitian Eigenvalue Problem eigh() API and wrapper change proposal

- #11266: Sparse matrix constructor data type detection changes on Numpy…

- #11270: CI failing: Travis CI Py36 refguide and Linux_Python_36_32bit_full…

- #11279: linalg.eigh checks whole array for finite values

- #11295: CI: azure does not auto-cancel old jobs on pushes

- #11299: stats.truncnorm.rvs 100x slower in v1.4.x than v1.3.3

- #11315: BUG: special: rgamma on negative integers smaller -34

- #11319: Missing `int64_t` declaration in rectangular_lsap.cpp

- #11323: Compilation failure due to missing symbol pthread_atfork

- #11332: BUG: directed_hausdorff distance on sets u and v when u is a…

- #11350: Khatri-Rao product

- #11354: ENH: Add wrapper for ?gejsv

- #11361: Dropped NaN in eval_genlaguerre function

- #11363: Dropped NaN in hyperu function

- #11365: scipy.stats.binned_statistic regressed in v1.4.0

- #11369: Dropped NaN in eval_hermite

- #11370: Dropped NaN in eval_gegenbauer

- #11373: Add wrapper for ?gtsvx

- #11374: Add wrapper for ?ptsvx

- #11391: csgraph.minimum_spanning_tree loses precision

- #11398: Update stats to cope with `np.random.Generator` machinery

- #11412: Array copying causes unwanted type casting from complex to float…

- #11415: Where is the Wiener Filter derived from?

- #11416: _lib._util.getargspec_no_self is missing KEYWORD_ONLY support

- #11428: Documentation on SHGO inequality constraints appears contradictory

- #11429: Add LAPACK’s ZUNCSD cosine sine decomposition

- #11438: run_dualannealing passes bounds incorrectly in benchmarks/optimize.py

- #11441: Can’t run optimize benchmarks

- #11442: Chebyshev weights

- #11448: Wrongly typed comparison in integrate.quad

- #11458: BUG: maximum_bipartite_matching produces infeasible solution

- #11460: CI failing: 2 Travis CI tests fail with numpy build or version…

- #11462: Bug on “++” initialization on “kmeans2”

- #11464: Shouldn’t data type of KDE evaluation should be like in the input…

- #11468: performance of binned_statistics_2d 100x slowdown from 1.3.2…

- #11484: Callback function doesn’t give the same value as the one being…

- #11492: Confusing dendrogram labelling

- #11493: scipy.optimize.least_squares fails if the return array of the…

- #11494: Error performing kronecker product between large sparse vectors

- #11503: medfilt produces 0 on input of length 1

- #11529: Pyflakes generates almost 700 warnings.

- #11566: irfft/irfft2/irfftn docs are slightly confusing re: input type.

- #11572: least_squares: too small tolerances not catched with method=’lm’

- #11581: DOC: scipy.interpolate.RectSphereBivariateSpline

- #11586: Differential evolution breaks with LinearConstraints with sparse…

- #11595: scipy.spatial.cKDTree construction slow for some datasets

- #11598: output of special.voigt_profile when sigma=0

- #11601: linalg tests failing in runtests.py

- #11602: scipy.optimize.linear_sum_assignment returns reverse diagonal…

- #11610: Analytic formula for normal moments

- #11611: Build failure with gfortran 10

- #11613: TST, MAINT: test_quadpack TestCtypesQuad wasn’t fully migrated…

- #11630: SmoothBivariateSpline bbox parameter

- #11635: typo in docstring of scipy.stats.norminvgauss

- #11637: BUG: core dumps when calling scipy.interpolate.interp1d with…

- #11638: better documentation for ‘return_all’ option in minimize(Nelder…

- #11652: TST, MAINT: CI failures for pre-release NumPy wheels

- #11659: optimize.fmin_l_bfgs_b needs bound check and appropiate error…

- #11660: BUG/ENH: distribution.ncf with nc=0 returns nan

- #11661: scipy.ndimage.convolve1d and correlate1d don’t behave properly…

- #11669: p-value varies with the order of the data

- #11676: documentation of scipy.spatial.HalfspaceIntersection: wrong method…

- #11685: Rotation cannot be expressed as matrix

- #11686: MAINT: mypy imports of Cython “modules”

- #11693: TestDifferentialEvolutionSolver::test_L4 failing in CI

- #11696: DOC: incorrect compiler information for macOS in docs

- #11709: eigh() tests fail to pass, crash Python with seemingly ramdom…

- #11763: Small error in gamma continuous rv fit comments

- #11769: truncnorm.rvs Weird Behaviors

- #11770: crash in TestEigh::test_value_subsets

- #11795: trapz distribution mean computed using single precision

- #11800: Segmentation fault in scipy.odr for multidimensional independent…

- #11811: pyflakes silently failing on travis-ci

- #11826: Error with _fblas

- #11827: `fft.tests.test_numpy.test_multiprocess` hangs on Python3.8…

- #11835: tests with `multiprocessing` hang on Python 3.8 on macOS

- #11839: linalg.expm returns nans with RuntimeWarning: overflow encountered…

- #11856: Documentation of fit methods for `weibull_min` and `exponweib`…

- #11868: Function always evaluated twice when using HessianUpdateStrategy…

- #11875: Typo in the docstring of simps()

- #11877: kmeans2 ‘++’ method is orders of magnitude slower than sklearn.cluster.KMeans()

- #11884: The upper code lines are dead code

- #11886: Array shape mismatch in scipy.optimize

- #11892: BUG: stats: Incorrect handling of edges cases by ttest_rel and…

- #11908: LinearOperator should have ndim attribute

- #11910: Documentation missing for what M is in init argument

- #11922: macOS actions CI has started failing in last couple of days.

- #11928: DOC: signal: Wrong description for sepfir2d, cspline2d, qspline2d

- #11944: curve_fit documentation unclear on default value of absolute_sigma

- #11945: Add a (potentially temporary) py.typed file?

- #11949: ValueError ‘k exceeds matrix dimensions’ for sparse.diagonal()…

- #11951: BUG: asv benchmark failed because of cython version

- #11967: BLD: Azure windows runs complain about drives

- #11973: oaconvolve(a,b,’same’) differs in shape from convolve(a,b,’same’)…

- #12002: pybind11 license

- #12003: MAINT: circular SphericalVoronoi input

- #12015: Reordering of CSC matrix breaks when you go above int32 limits

- #12031: Documentation Rendering Issues Visible in CircleCI Artifacts

- #12037: MAINT, CI: new Cython 3.0a4 issue

- #12087: DOC: some odr models are missing docs

- #12119: signal.fftconvolve no longer convolves types f8 and numpy.float64

- #12149: Documentation of Rosenbrock function

- #12173: Large memory usage when indexing sparse matrices with `np.ix_`

- #12178: BUG: stats: Some discrete distributions don’t accept lists of…

- #12220: BUG, REL: gh_lists.py compromised scraping

- #12239: BUG: median absolute deviation handling of nan

- #12301: integer overflow in scipy.sparse.sputils.check_shape when matrix size > 2^32

- #12314: scipy.spatial.transform.Rotation multiplication does not normalize quaternion

## Pull requests for 1.5.0

- #6510: Add Eigenvalue Range Functionality for Symmetric Eigenvalue Problems

- #9525: BUG: SuperLU ‘NATURAL’ order applies a column permutation

- #9634: Add the number of Jacobian evaluations to the output of L-BFGS-B.

- #9719: ENH: Added kstwo probability distribution for two-sided one-sample…

- #9783: WIP: optimize: added (dense) interpolative decomposition redundancy…

- #10053: Adding docstring to weibull_min and weibull_max based on issue…

- #10136: DEP: Add warning to linprog_verbose_callback

- #10380: ENH: add geometric_slerp

- #10602: MAINT: optimize: refactor common linprog arguments into namedtuple

- #10648: Bounds for the Powell minimization method

- #10673: ENH: approx_fprime –> approx_derivative

- #10759: ENH: calculation of region areas in spatial.SphericalVoronoi

- #10762: BENCH: optimize: more comprehensive linprog benchmarking

- #10796: ENH exact p-values of wilcoxon test in scipy.stats

- #10797: ENH: linalg: LU with full pivoting (wrappers for ?getc2/?gesc2)

- #10824: ENH: Fast gaussian kernel estimator

- #10942: BUG: prevent bound violation in L-BFGS-B optimize method

- #11003: ENH: add scipy.linalg.convolution_matrix

- #11023: improving error message for cubic-interpolate with duplicates

- #11045: MAINT: make bdt{r,rc,ri}() functions accept double n,k args +…

- #11063: Fix documentation error in optimize.minimize

- #11069: ENH: stats.dlaplace.rvs improvements

- #11071: DOC: Added examples to maximum_position in ndimage

- #11075: DOC: Update stylistic consistency in multiple files

- #11097: BUG: stats: fixing chisquare to return correct results for arrays…

- #11110: ENH: special: Cythonise erfinv, erfcinv

- #11112: BUG: special: Return NaN outside the domain of `eval_hermite`

- #11114: BUG: special: fix `hyp1f1` for nonnegative integral `a` and…

- #11115: DOC: special: add docstrings for `kei`, `ker`, `keip`,…

- #11130: ENH: support for circular input

- #11136: BUG: expm handling of empty input

- #11138: DOC: stylistic consistency, punctuation, etc.

- #11139: MAINT: cluster: use cython_blas, remove handwritten BLAS wrappers

- #11146: DOC: update docs on bp parameter for detrend

- #11151: DOC: special: add docstrings for `bei`, `ber`, `beip`,…

- #11156: ENH: add input validation for ellipord.

- #11157: DOC: stylistic revision, punctuation, consistency

- #11160: ignore warning on 0 * inf in basin hopping

- #11162: DOC: minor stylistic revision, undo changes

- #11164: ENH/ BUG: Pydata sparse equality

- #11171: Fix dtype validation of “seuclidean” metric V parameter

- #11177: BUG: stats: Improve genpareto stats calculations.

- #11180: MAINT: stats: Some clean up in test_distributions.py.

- #11187: ENH: add functionality log_softmax to SciPy.special.

- #11188: MAINT: add rvs method to argus in scipy.stats

- #11196: DOC: special: add to docstrings of Kelvin zeros functions

- #11202: BUG: fix edge counting in shortest_path

- #11218: BUG: scipy/interpolate: fix PPoly/Cubic*Spline roots() extrapolation…

- #11225: Add a warning to constant input for spearmanr() function

- #11226: Speed up of interior-point method for cholesky solver

- #11229: BUG: Explicit dtype specification in _upfirdn.py

- #11230: Additional citation for optimize tutorial

- #11231: Adds SLSQP test for duplicate f-evals (#10738)

- #11236: MAINT: Improved error message for Wn range in iirfilter.

- #11245: ENH: optimize: dense redundancy removal routine optimizations

- #11247: MAINT: Remove _lib/_numpy_compat.py

- #11248: BUG: rv_discrete.ppf() to handle loc

- #11251: DOC: add reference for linesearch zoom algorithm

- #11253: BUG: fix kendalltau issue where p-value becomes >1

- #11254: MAINT: make special.factorial handle nan correctly

- #11256: DOC: Updated documentation for scipy.linalg.qr

- #11265: Fix: Can no longer slice csr_matrix in 1.3.0

- #11267: BUG: Rework the scaling in the ks_2samp two-sided exact test.

- #11268: DOC: example of NonLinearConstraint

- #11269: Fix: Sparse matrix constructor data type detection changes on…

- #11276: BLD: update minimum Python, NumPy, Cython, Pybind11 versions

- #11277: MAINT: Cleanup conditionals for unsupported numpy verisons

- #11278: MAINT: Cleanup stats.iqr workarounds for unsupported NumPy versions

- #11282: TST/CI: improve traceback formatting for test failures

- #11284: fix docs & behavior for mode sequences in ndimage filters

- #11285: DOC: special: complete the docstrings of Chi-square functions

- #11286: BUG: make loadmat/savemat file opening close resources correctly

- #11287: CI: skip Azure and TravisCI builds on merges and direct pushes…

- #11288: DOC: Fix import in scipy.io.wavfile.read sample code

- #11289: BUG: Use context manager for open

- #11290: MAINT: Remove _lib._version in favour of _lib._pep440

- #11292: DOC: special: add docstrings for various convenience functions

- #11293: DOC: special: fix typo in `chdtri` docstring

- #11296: DOC: special: add to docstrings of Bessel zeros and derivatives

- #11297: DOC: special: add parameters/returns sections for Bessel integrals

- #11300: MAINT: Update vendored uarray version

- #11301: CI: azure conditions should require succeeded()

- #11302: ENH: build infrastructure for ILP64 BLAS + ARPACK conversion

- #11303: DOC: special: fix typo in `besselpoly` docstring

- #11304: ENH: MAINT: Rewrite of eigh() and relevant wrappers

- #11306: TST: skip test_aligned_mem linalg test that is crashing on ppcle64

- #11307: MAINT: Fix typo ‘solutuion’ -> ‘solution’

- #11308: ENH: do not create 1d array out of a scalar

- #11310: MAINT: clean up object array creation, scalar/1d confusion

- #11311: DOC: Specify custom callable option for metric in cluster.hierarchy.fclusterdata

- #11316: BUG: special: fix behavior for `rgamma` zeros

- #11317: BUG: fix floating-point literal comparisons under C99

- #11318: TST: optimize: mark two linprog tests for skipping

- #11320: BUG: Include `int64_t` declaration to `rectangular_lsap.cpp`

- #11330: MAINT: Update vendored pypocketfft version

- #11333: BUG: directed_hausdorff subset fix

- #11335: [ENH] sparse: Loosen check for sparse outer indexing fast path

- #11337: Undefined name ‘e’ in pavement.py

- #11338: scipyoptdoc.py: Remove unused variable ‘sixu’

- #11340: xrange() was removed in Python 3 in favor of range()

- #11342: range() was removed in Py3 in _binned_statistic.py

- #11343: BUG: constants: fix ‘exact’ values table

- #11347: ENH: add input validation function and apply it to needed functions

- #11348: MAINT: remove six.string_types usages

- #11349: MAINT: minor doc fix _minimize_trustregion_constr

- #11353: MAINT: py3 remove various six usages

- #11358: ENH: optimize: Use CSR format instead of LIL for speed

- #11362: MAINT: sys.version_info >= 3.5

- #11364: ENH: cache square of sums for f_oneway

- #11368: ENH: add optional argument, “include_nyquist”, for freqz()

- #11372: BENCH: optimize: added linprog presolve benchmarks

- #11376: ENH: Add wrapper for ?gttrf/?gttrs

- #11377: MAINT: Remove Python 2 code from tools/authors.py

- #11378: ENH (WIP): Python wrapper for ?tbtrs

- #11379: MAINT: Remove six.with_metaclass from benchmarks/cython_special.py

- #11380: BUG: sparse/isolve: bicg and qmr don’t treat x0 correctly

- #11382: MAINT: remove error throw in binned_statistic_dd() on non-finite…

- #11383: MAINT: _lib: remove py2 compat shims in getargspec

- #11384: MAINT: Use numpy scalar types directly

- #11385: ENH: special: add spherical Bessel functions to `cython_special`

- #11389: MAINT: line.startswith shouldn’t be bytes

- #11393: ENH: Speed up truncnorm’s ppf()and rvs() methods

- #11394: MAINT: Remove self._size (and self._random_state) from stats…

- #11395: correction in error message (%d->%g format)

- #11396: DOC: revert gh10540, removing mtrand

- #11397: MAINT: differential_evolution accepts np.random.Generator

- #11402: ENH: stats can use np.random.Generator

- #11404: ENH: add docstring of butter() for transfer function syntax problem

- #11405: DOC: Fix “see also” for SmoothBivariateSpline

- #11408: ENH: Add a `plan` argument to FFT functions in `scipy.fft`

- #11411: MAINT: check minimize duplicate evaluations

- #11418: ENH: Linalg: Python wrapper for ?geqrfp

- #11419: TST: Python 3.7 mac OS gcc multibuild fix

- #11423: ENH: Add tool to lint diffs

- #11425: FIX: _array_newton should preserve complex inputs

- #11426: MAINT: licence for global optimization benchmarks

- #11431: Make median_absolute_deviation scale argument aligned w/iqr

- #11432: Fix error message typo

- #11433: DOC: Remove L from longs

- #11434: MAINT: Python3 improvements to refguide_check.py

- #11435: DOC: Update runtest –parallel help

- #11436: MAINT: Remove checks for sys.version < 3.5

- #11437: DOC: Fix documentation issue

- #11439: Support path objects (PEP 519) in mmio functions

- #11440: correct bounds pass in run_dualannealing for benchmarks/optimize.py

- #11443: BENCH: optimize_linprog remove ImportError exception

- #11453: BUG: sparse: convert csc/csr indices to int64 as needed

- #11454: DOC: Remove caveat on `maximum_bipartite_matching`

- #11455: BUG: Fix _lib._util.getargspec_no_self lack of KEYWORD_ONLY support.

- #11456: Implementation of khatri_rao product

- #11459: BUG: fix augmentation being broken in maximum_bipartite_matching

- #11461: MAINT: minor spelling corrections in comments in SciPy.sparse.linalg.arpack

- #11467: [MRG] Make result data type of KDE evaluation like in the input…

- #11469: Update integrate.quad documentation

- #11472: Fixed result typo

- #11476: DOC: stats: Copy-edit the anderson docstring.

- #11478: ENH: avoid unnecessary array copies in matrix product

- #11481: BUG: Make special.hyperu return nan if any argument is nan

- #11483: BUG: Fixed `_kpp` initialization on `scipy.cluster.vq`, closing…

- #11485: ENH: Update docstring of class KrylovJacobian to fix #2744

- #11486: BUG: make special.eval_hermite return nan if second argument…

- #11487: ENH: improve docstring of correlate and correlate2d to fix #1968

- #11488: FIX: change “func -> fun” of scipy.optimize _root.py to solve…

- #11489: BUG: fixes typo introduced in PR #11253 in stats.mstats.kendalltau()

- #11490: DOC: fix typo in scipy/io/matlab/mio4.py

- #11495: MAINT: refactor slsqp to fix issue in callback function

- #11498: [DOC] mention graph cuts in maximum flow docstring

- #11499: DOC: Improve documentation of scipy.signal.signaltools.wiener

- #11506: DOC: Fix typo in documentation of scipy.stats.morestats

- #11508: ENH: avoid copy on sparse __init__ when dtype is given

- #11509: ENH: avoid unnecessary array copies in matrix product (again)

- #11510: [DOC] An ex. for creating arbitrary size tri-diagonal

- #11511: TST: pin numba for Travis/sparse

- #11513: TST: disable NumPy cache dir ppc64le

- #11514: BUG: make special.eval_genlaguerre return nan if passed nan

- #11517: ENH: improve sparse.lil.tocsr performance

- #11519: Fix fresnel documentation

- #11520: BUG: make special.eval_gegenbauer return nan if passed nan

- #11524: ENH: Cosine Sine Decomposition

- #11526: BUG: fix SLSQP max iteration setting to fix #4921

- #11527: ENH: improve docstring of weibull_min_gen and weibull_max_gen…

- #11530: MAINT: Removed 3 unused imports, 3 unused assignments from ndimage.

- #11531: DOC: fix typos in bdtr and bdtrc from gh PR 11045

- #11532: MAINT: Fixed several unused imports and unused assignments from…

- #11533: MAINT: Fixed about 100 unused imports, unused assignment warnings…

- #11534: FIX: Allow non-native byte order inputs to scipy.fft

- #11535: MAINT: Fixed several unused imports in _lib.

- #11536: MAINT: Fixed several unused imports and unused assignments in…

- #11537: MAINT: Removed an unused import in scipy/constants.

- #11538: MAINT: Fixed several unused imports in scipy/fft.

- #11539: MAINT: Fixed several unused imports and unused assignments in…

- #11540: MAINT: Fixed two unused imports in scipy/misc.

- #11541: MAINT: Fixed several unused imports and unused assignments in…

- #11542: MAINT: Fixed an unused import in scipy/odr.

- #11543: MAINT: Fixed several unused imports and unused assignments in…

- #11544: MAINT: Fixed unused imports and unused assignments in scipy/integrate.

- #11545: MAINT: Removed unused imports and fixed unused assignments in…

- #11546: MAINT: Removed unused imports; fixed unused assignments in scipy/signal.

- #11547: MAINT: Removed unused imports; fixed unused assignments in scipy/spatial

- #11548: MAINT: Removed unused imports; fixed unused assignments in scipy.sparse.

- #11549: MAINT: Replace xrange with range

- #11560: MAINT: stats: remove an _argcheck call

- #11573: MAINT: Removed unused imports; fixed unused assignments in scipy/stats.

- #11574: MAINT: Small change to `optimize.nnls` error messages.

- #11575: MAINT: Update sytrd/hetrd tests

- #11582: MAINT: fix typo in quadpack.py closes #11448

- #11585: TST: add openblas_support.py

- #11587: BUG: Differential evolution with LinearConstraint with sparse…

- #11588: MAINT: Fully display problem size in lsmr/lsqr.

- #11589: MAINT: Remove Python 2 workarounds

- #11590: MAINT: Remove Python2 module init

- #11605: Standardization of bounds in _linprog_util.py

- #11608: BUG: fix use of is in DE callback

- #11614: TST, MAINT: TestCtypesQuad skip with pytest

- #11619: ENH: add nan_policy argument and functionality to stats.mstats.winsorize

- #11621: MAINT: Cleanup uses of PY_VERSION_HEX, NPY_PY3K in ndimage

- #11622: MAINT: Cleanup uses of PY_VERSION_HEX, NPY_PY3K in sparse

- #11623: MAINT: Remove unnecessary ‘from __future__ import …’ statements

- #11626: MAINT: Cleanup uses of PY_VERSION_HEX

- #11627: ENH: add analytic formula for normal moments

- #11628: MAINT, TST: adjust azure for matplotlib release

- #11631: Revert to old behaviour for constant cost matrices in `linear_sum_assignment`

- #11632: MAINT: Define ARRAY_ANYORDER with DEF instead of cdef

- #11639: BUG: interpolate/interp1d: fail gracefully on all-nan inputs

- #11640: MAINT: Fix BLAS3 trmm wrapper for “side” arg

- #11642: TST, MAINT: remove dead code in Travis CI

- #11643: MAINT: fix conversion in binom_test

- #11645: MAINT: Assorted clean up.

- #11646: MAINT: Remove unnecessary ‘from __future__ import …’ statements

- #11647: DOC: document return_all arguments

- #11648: Perform geometric slerp in quaternion space

- #11651: DOC: Update paper URL in lambertw documentation

- #11653: PERF: Switch to C++ STL std::nth_element

- #11655: MAINT: Remove Python2 cStringStream

- #11657: ENH: Add wrapper for ?pttrf/?pttrs

- #11664: ENH: Add wrapper for ?gejsv

- #11665: ENH: Add wrapper for ?pteqr

- #11667: BUG: Non-central Fisher distribution (fix nan-values when nc=0)

- #11668: ENH: Add wrapper for ?gtsvx

- #11671: TST, CI: restore Azure temporarily

- #11672: Add warning to medfilt when array size < kernel_size

- #11674: TST: bump test precision for two np.dot related linalg tests.

- #11675: MAINT: pycodestyle clean-up

- #11677: ENH: Add wrapper for ?ptsvx

- #11679: BENCH: cKDTree benchmarks added: balanced/unbalanced tree (related…

- #11680: MAINT: rng_integers allows RandomState.randint or Generator.integers

- #11683: BUG: fix mode=’mirror’ on length 1 axes

- #11684: BUG: fix scipy.special.voigt_profile

- #11687: MAINT: sparse.linalg: avoid importing from `np.core`

- #11688: ENH: mypy: get specific about ignoring missing imports

- #11690: MAINT: mypy: fix errors about incompatible types in lists

- #11692: MAINT: mypy: fix remaining type errors

- #11694: TST, MAINT: bump to OpenBLAS 0.3.9 stable, raise tol for Win…

- #11697: DOC: fix pdf of norminvgauss in scipy.stats

- #11701: MAINT: special: add rudimentary types for `_ufuncs` extension…

- #11702: BUG: Fixed a post-merge bug for eigh()

- #11703: Improves docstring with consistent L2-norm

- #11705: DOC: Slerp the SphericalVoronoi docstring

- #11706: ENH: mypy: add `–mypy` option to `runtests.py`

- #11710: ENH: Modified stats.kstest() to use the exact stats.kstwo.sf()…

- #11715: DOC: add .. versionadded:: to as_matrix/from_matrix in spatial/transf…

- #11716: BENCH: fix benchmark imports for ``optimize_linprog.py``

- #11721: MAINT: io: Remove now-unnecessary `# type: ignore`

- #11722: MAINT: mypy: remove mpmath from the ratchet

- #11726: Handle constant input for scipy.stats.f_oneway

- #11729: BENCH: optimize: added infeasible benchmarks for linprog

- #11731: fix inaccurate information about Mac OS compiler (#11696)

- #11733: Fix inaccurate docstring example of HalfspaceIntersection

- #11734: Doc: fix inaccurate docstring of SmoothBivariateSpline.

- #11735: Bug: stats: fix wrong shape from median_absolute_deviation for…

- #11736: ENH: add input validations and its tests for FITPACK in fitpack2.py

- #11737: BUG: Prevent crashes due to MKL bug in ?heevr

- #11739: MAINT: special: add type stubs for `_test_round.pyx`

- #11740: MAINT: special: remove unused specfun f2py wrappers

- #11741: BUG: fix small tolerances handling for minpack and add a test.

- #11743: Doc: fix docstring of rfft, rfft2, rfftn, irfft, irfft2, irfftn…

- #11744: MAINT: Remove unused py3k.h code

- #11745: DOC: stats: Clean up ncf documentation.

- #11748: MAINT: special: type `cython_special` as `Any`

- #11750: MAINT: type hints for `_spherical_voronoi`

- #11752: DOC: fix docstring of scipy.optimize.least_squares

- #11753: ENH: add input validation for dendrogram and a test.

- #11755: MAINT: Replace uses of tostring with tobytes

- #11757: ENH: improve binned_statistics_2d performance.

- #11759: ENH: optimize: add HiGHS methods to linprog

- #11760: MAINT: Remove FileStream replaced by GenericStream

- #11761: MAINT: Replace npy_3kcompat.h shims

- #11765: TST: Speedup test_pascal which is VERY slow on Azure

- #11766: TST: speed up differential_evolution L8 test

- #11767: Change comment in continuous rv gamma fit function

- #11776: Add domain option for resample.

- #11784: BUG: Fixed calculation of nonzero elements in scipy.sparse.random

- #11786: ENH: stats: add axis keyword argument to scipy.stats.rankdata

- #11789: Doc: fix docstring of scipy.spatial.chebyshev

- #11792: DOC: dev: add guidelines for developing public Cython APIs

- #11794: MAINT: add comments explaining a problem in cython_optimize organization

- #11796: DOC: add a note about precision losing in csgraph.minimum_spanning_tree…

- #11797: ENH: Allow negative `axis` in `interpolate.BSpline`. Also…

- #11798: Add simplify_cells parameter to scipy.io.loadmat

- #11801: MAINT, DOC: minor changes of ratio-of-uniforms in scipy.stats

- #11802: BUG: fix scipy.odr to handle multidimensional independent and…

- #11803: scipy.stats.trapz: Use analytic formulas for stats and entropy.

- #11808: DOC: add Examples in the scipy.interpolate.interpn docstring.

- #11809: Duplicate entries are added together in csr_matrix constructor

- #11813: MAINT: bump pyflakes to version 2.1.1

- #11814: BUG: scipy.sparse.csr doctest failing with incorrect output value

- #11817: DOC: add Examples in the scipy.optimize.leastsq docstring

- #11820: ENH: Raise an error on incorrect bounds format in optimize.fmin_l_bfgs_b

- #11822: CI: add github actions for macOS

- #11824: DOC: add Examples in scipy.optimize.line_search docstring (line_search_wolfe2)

- #11830: TST: Always use fork for multiprocessing in fft tests

- #11831: DOC: add Examples and Returns in scipy.misc.central_diff_weights…

- #11832: DOC: stats: Some small corrections to a couple docstrings.

- #11833: BUG: Fix compiler_name when there are paths used in flags

- #11836: MAINT: re-introduce multiprocessing tests on Python3.8

- #11837: Doc: add Examples in scipy.optimize.fsolve docstring

- #11838: Doc: add Examples in scipy.sparse.linalg.minres docstring

- #11840: BUG: sparse.linalg: fix overflow in expm intermediate computation

- #11842: BLD: fix build with gfortran 10

- #11843: MAINT: Simplify floats in constants.py

- #11847: DOC: add a tutorial of scipy.optimize.linprog

- #11849: ENH: speed up geninvgauss by using cython

- #11852: CI: remove osx from travisCI

- #11857: BUG: Change parameter fc of gausspulse to float.

- #11861: order = degree + 1 for splines

- #11863: Make g77 ABI wrapper work with gfortran ABI lapack

- #11866: MAINT: add type ignores to sympy and matplotlib imports

- #11867: CI: Add arm64 in travis-ci

- #11869: DOC: signal: Add an example to the lsim2 docstring.

- #11870: DOC: signal: Use impulse instead of impulse2 in the impulse example…

- #11871: ENH: type ufuncs in special as ufuncs instead of Any

- #11872: BUG: avoid recomputing in scipy.optimize.optimize.MemoizeJac

- #11873: DOC: signal: Fix ODE in impulse and impulse2 docstrings.

- #11874: DOC: add Examples of docstring for scipy.interpolate.approximate_taylor_polynomial

- #11878: DOC: fixed a typo under scipy/integrate/quadrature.py

- #11879: BUG: Fix index arrays overflow in sparse.kron

- #11880: DOC: stats: Add Examples for bartlett, fligner, levene.

- #11881: MAINT: normalise numpy–>np in optimize.py

- #11882: DOC: add Examples for scipy.io.readsav docstring.

- #11883: DOC: add Returns and Examples for scipy.ndimage.correlate() docstring

- #11885: BUG: stats: Handle multidimensional arrays in f_oneway, and more.

- #11889: DOC: signal: Unify lsim and lsim2 examples.

- #11896: BUG: stats: Fix handling of size 0 inputs for ttest_rel and ttest_ind.

- #11897: DOC: Remove misleading default values from fit method

- #11898: MAINT: LinearVectorFunction.J is ndarray closes #11886

- #11902: BUG: linalg: test_heequb failure

- #11904: fix real-to-real transforms for complex inputs and overwrite_x=True

- #11906: DOC: stats: fix error caused by trapz docstring

- #11907: BUG: stats: fixed SEGFAULT from Issue #9710

- #11912: ENH: Respect matplotlib color palette with hierarchy/dendrogram.

- #11914: DOC: refine doc for spatial.distance.squareform

- #11915: ENH: Ndim linear operator

- #11919: ENH: expose “window_size” parameter in find_peaks_cwt()

- #11920: DOC: explain M, diffev

- #11923: CI: macOS install swig closes #11922

- #11924: DOC: add Examples for scipy.optimize.bracket() docstring

- #11930: DOC: add Examples and clean up for signal.qspline1d and signal.qspline_eval…

- #11931: DOC: add Examples for sparse.linalg.bicg docstring.

- #11933: DOC: Add original reference for Yao-Liu objective functions

- #11934: DOC, MAINT: mailmap update

- #11935: DOC: make scipy.stats.mode documentation reflect that the function…

- #11936: ENH: special: add type stubs for `orthogonal.py`

- #11937: DOC: Add docstring examples to fft2, ifft2, io.savemat

- #11938: MAINT: add helper function for deprecating Cython API functions

- #11942: MAINT: ignore conditional import in _lib/_util

- #11943: MAINT: special: add types for geterr/seterr/errstate

- #11946: MAINT: add py.typed marker

- #11950: TST:MAINT: separated and stabilized heequb tests

- #11952: DOC: update toolchain roadmap for py38, C99, C++11/14

- #11957: MAINT: Use np.errstate context manager instead of np.seterr.

- #11958: MAINT: interpolate: Remove some trailing spaces.

- #11960: MAINT: Cleanup Python2 compatibility code

- #11961: MAINT: Remove numpy/npy_3kcompat.h from _superluobject.c

- #11962: DOC: Fix type of `codes` in docstring of `_vq._vq()`

- #11964: MAINT: Cleanup unused IS_PYPY

- #11969: DOC: add Examples and fix docstring for special.airye

- #11970: BUG: sparse: ‘diagonal’ of sparse matrices fixed to match numpy’s…

- #11974: BUG: Reshape oaconvolve output even when no axes are convolved

- #11976: MAINT: add logo for github actions

- #11977: CI: test bleeding edge Python

- #11979: DOC: add Examples for stats.ranksums() docstring.

- #11982: Fix KMeans++ initialisation slowness

- #11983: DOC: add Examples for stats.mstats.argstoarray() docstring.

- #11986: Avoid bugs in ndimage when the output and input arrays overlap…

- #11988: ENH: Override fit method of Laplace distribution with Maximum…

- #11993: TST, CI: Azure Windows path fixups

- #11995: MAINT, CI: remove custom mingw Azure

- #11996: DOC: add Examples and fix pep warning for fft.set_global_backend…

- #11997: MAINT, CI: Azure OpenBLAS simplify

- #11998: BENCH: Run against current HEAD instead of master

- #12001: ENH: stats: Implement _logpdf for the maxwell distribution.

- #12004: DOC: add examples for integrate.quad_vec() and integrate.quad_explain()

- #12005: MAINT: Use helper functions in ?tbtrs tests

- #12007: MAINT: updated LICENSES_bundled for pybind11 and six

- #12008: DOC: roadmap update

- #12009: ENH: optimize: support 64-bit BLAS in lbfgsb

- #12010: ENH: sparse.linalg: support 64-bit BLAS in isolve

- #12012: DOC: add Examples for interpolate.barycentric_interpolate(),…

- #12013: MAINT: remove last uses of numpy.dual

- #12014: CI: print 10 slowest tests

- #12020: MAINT: Removed handling of circular input in SphericalVoronoi

- #12022: DOC : added default value of absolute_sigma to False in scipy.optimize.curve_fit docs

- #12024: DOC: add Examples for io.hb_read() and io.hb_write()

- #12025: MAINT: Remove numpy/npy_3kcompat.h from nd_image

- #12028: Spelling correction

- #12030: ENH: optimize/_trlib: support ILP64 blas/lapack

- #12036: MAINT: Add some generated C files .gitignore

- #12038: MAINT, CI: Travis rackcdn->conda.org

- #12039: MAINT: signal: Lower the resolution of the plots in the chirp…

- #12040: DOC: add Examples for ndimage.spline_filter1d() and spline_filter()…

- #12044: MAINT: combine apt-get update and apt-get install into one RUN

- #12045: TST: Reduce size of test_diagonal_types to speed up tests

- #12046: MAINT: Remove unused npy_3kcompat.h

- #12047: MAINT: Cython 3.0 compat

- #12050: DOC: add download number badges of PyPI and conda-forge in README.rst

- #12052: DOC: add Examples odr.models.polynomial() and fix odr.odr docstring…

- #12056: ENH: Modifies shapiro to return a named tuple

- #12057: Adding my name into THANKS.txt

- #12060: TST: Reduce number of test_diagonal_types configs

- #12062: TST: Change dec.slow to pytest.mark.slow

- #12068: ENH: Modifies jarque_bera to return a named tuple

- #12070: MAINT, CI: appveyor rack->conda.org

- #12072: TST: filter out factorial(float) deprecation warning

- #12078: TST: Skip test on colab with large memory alloc

- #12079: DOC: Remove Python2 reference from stats tutorial

- #12081: DOC: add Examples docstring for optimize.show_options()

- #12084: BUG: interpolate: fix BarycentricInterpolator with integer input…

- #12089: ENH: spatial/qhull: support ILP64 Lapack

- #12090: ENH: integrate: support ILP64 BLAS in odeint/vode/lsoda

- #12091: ENH: integrate: support ILP64 in quadpack

- #12092: BUG: Fix dropping dt in signal.StateSpace

- #12093: MAINT: Rollback python2.6 workaround

- #12094: MAINT: `openblas_support` hash checks

- #12095: MAINT: ndimage: change `shares_memory` to `may_share_memory`

- #12098: Doc: change 4 model instances of odr to be instances of `Model`…

- #12101: Removed more unused imports and assignments.

- #12107: ENH: Area calculation for 2D inputs in SphericalVoronoi

- #12108: MAINT: ensure attributes have correct data type in `SphericalVoronoi`

- #12109: degree is not order in splines

- #12110: ENH: More helpful/forgiving io.wavfile errors

- #12117: BUG: fix newline

- #12123: [MAINT] Fix error on PyData/Sparse import.

- #12124: TST: Always test matmul now that Python3.5+ is required

- #12126: TST: Cleanup unused matplotlib code.

- #12127: DOC: update docstrings of signal.cspline2d, qspline2d, sepfir2d

- #12130: MAINT: Fixing broken links with linkchecker

- #12135: ENH: linalg: Add the function convolution_matrix.

- #12136: MAINT: Cleanup np.poly1d hack

- #12137: TST, CI: reproduce wheels 32-bit setup

- #12140: TST: stats: add kstwo, ksone to slow tests.

- #12141: Support 64-bit integer size in Fitpack

- #12151: DOC: Correct Rosenbrock function sum

- #12159: BUG: Fix length calculation in upfirdn

- #12160: BUG: Fix M_PI

- #12168: DOC: add an obsolete version checking javascript to doc release…

- #12171: CI, MAINT: Azure OpenBLAS drive flip

- #12172: ENH: Bounds for the Powell minimization method

- #12175: BLD: support more Fortran compilers for ilp64 and macro expansion…

- #12179: BUG: stats: A few distributions didn’t accept lists as arguments.

- #12180: MAINT: removed redundant import in SphericalVoronoi tests

- #12181: DOC: for versionwarning don’t use $.getScript

- #12182: MAINT: random sampling on the hypersphere in SphericalVoronoi…

- #12194: MAINT: Module and example cleanups for doc build

- #12202: ENH: tool to DL release wheels from Anaconda

- #12210: Remove py.typed marker (at least for the release)

- #12217: BUG: stats: Fix handling of edge cases in median_abs_deviation.

- #12223: BUG: stats: wilcoxon returned p > 1 for certain inputs.

- #12227: BLD: Set macos min version when building rectangular_lsap

- #12229: MAINT: tools/gh_lists.py: fix http header case sensitivity issue

- #12236: DOC: Fix a couple grammatical mistakes in 1.5.0-notes.rst.

- #12276: TST: skip test_heequb, it fails intermittently.

- #12285: CI: split travis arm64 run into two

- #12317: BUG: prevent error accumulation in Rotation multiplication

- #12318: BUG: sparse: avoid np.prod overflow in check_shape

- #12319: BUG: Make cobyla threadsafe

- #12335: MAINT: Work around Sphinx bug