SciPy 1.6.0 Release Notes#

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

This release requires Python 3.7+ and NumPy 1.16.5 or greater.

For running on PyPy, PyPy3 6.0+ is required.

Highlights of this release#

  • scipy.ndimage improvements: Fixes and ehancements to boundary extension modes for interpolation functions. Support for complex-valued inputs in many filtering and interpolation functions. New grid_mode option for scipy.ndimage.zoom to enable results consistent with scikit-image’s rescale.

  • scipy.optimize.linprog has fast, new methods for large, sparse problems from the HiGHS library.

  • scipy.stats improvements including new distributions, a new test, and enhancements to existing distributions and tests

New features#

scipy.special improvements#

scipy.special now has improved support for 64-bit LAPACK backend

scipy.odr improvements#

scipy.odr now has support for 64-bit integer BLAS

scipy.odr.ODR has gained an optional overwrite argument so that existing files may be overwritten.

scipy.integrate improvements#

Some renames of functions with poor names were done, with the old names retained without being in the reference guide for backwards compatibility reasons: - integrate.simps was renamed to integrate.simpson - integrate.trapz was renamed to integrate.trapezoid - integrate.cumtrapz was renamed to integrate.cumulative_trapezoid

scipy.cluster improvements#

scipy.cluster.hierarchy.DisjointSet has been added for incremental connectivity queries.

scipy.cluster.hierarchy.dendrogram return value now also includes leaf color information in leaves_color_list.

scipy.interpolate improvements#

scipy.interpolate.interp1d has a new method nearest-up, similar to the existing method nearest but rounds half-integers up instead of down.

scipy.io improvements#

Support has been added for reading arbitrary bit depth integer PCM WAV files from 1- to 32-bit, including the commonly-requested 24-bit depth.

scipy.linalg improvements#

The new function scipy.linalg.matmul_toeplitz uses the FFT to compute the product of a Toeplitz matrix with another matrix.

scipy.linalg.sqrtm and scipy.linalg.logm have performance improvements thanks to additional Cython code.

Python LAPACK wrappers have been added for pptrf, pptrs, ppsv, pptri, and ppcon.

scipy.linalg.norm and the svd family of functions will now use 64-bit integer backends when available.

scipy.ndimage improvements#

scipy.ndimage.convolve, scipy.ndimage.correlate and their 1d counterparts now accept both complex-valued images and/or complex-valued filter kernels. All convolution-based filters also now accept complex-valued inputs (e.g. gaussian_filter, uniform_filter, etc.).

Multiple fixes and enhancements to boundary handling were introduced to scipy.ndimage interpolation functions (i.e. affine_transform, geometric_transform, map_coordinates, rotate, shift, zoom).

A new boundary mode, grid-wrap was added which wraps images periodically, using a period equal to the shape of the input image grid. This is in contrast to the existing wrap mode which uses a period that is one sample smaller than the original signal extent along each dimension.

A long-standing bug in the reflect boundary condition has been fixed and the mode grid-mirror was introduced as a synonym for reflect.

A new boundary mode, grid-constant is now available. This is similar to the existing ndimage constant mode, but interpolation will still performed at coordinate values outside of the original image extent. This grid-constant mode is consistent with OpenCV’s BORDER_CONSTANT mode and scikit-image’s constant mode.

Spline pre-filtering (used internally by ndimage interpolation functions when order >= 2), now supports all boundary modes rather than always defaulting to mirror boundary conditions. The standalone functions spline_filter and spline_filter1d have analytical boundary conditions that match modes mirror, grid-wrap and reflect.

scipy.ndimage interpolation functions now accept complex-valued inputs. In this case, the interpolation is applied independently to the real and imaginary components.

The ndimage tutorials (https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html) have been updated with new figures to better clarify the exact behavior of all of the interpolation boundary modes.

scipy.ndimage.zoom now has a grid_mode option that changes the coordinate of the center of the first pixel along an axis from 0 to 0.5. This allows resizing in a manner that is consistent with the behavior of scikit-image’s resize and rescale functions (and OpenCV’s cv2.resize).

scipy.optimize improvements#

scipy.optimize.linprog has fast, new methods for large, sparse problems from the HiGHS C++ library. method='highs-ds' uses a high performance dual revised simplex implementation (HSOL), method='highs-ipm' uses an interior-point method with crossover, and method='highs' chooses between the two automatically. These methods are typically much faster and often exceed the accuracy of other linprog methods, so we recommend explicitly specifying one of these three method values when using linprog.

scipy.optimize.quadratic_assignment has been added for approximate solution of the quadratic assignment problem.

scipy.optimize.linear_sum_assignment now has a substantially reduced overhead for small cost matrix sizes

scipy.optimize.least_squares has improved performance when the user provides the jacobian as a sparse jacobian already in csr_matrix format

scipy.optimize.linprog now has an rr_method argument for specification of the method used for redundancy handling, and a new method for this purpose is available based on the interpolative decomposition approach.

scipy.signal improvements#

scipy.signal.gammatone has been added to design FIR or IIR filters that model the human auditory system.

scipy.signal.iircomb has been added to design IIR peaking/notching comb filters that can boost/attenuate a frequency from a signal.

scipy.signal.sosfilt performance has been improved to avoid some previously- observed slowdowns

scipy.signal.windows.taylor has been added–the Taylor window function is commonly used in radar digital signal processing

scipy.signal.gauss_spline now supports list type input for consistency with other related SciPy functions

scipy.signal.correlation_lags has been added to allow calculation of the lag/ displacement indices array for 1D cross-correlation.

scipy.sparse improvements#

A solver for the minimum weight full matching problem for bipartite graphs, also known as the linear assignment problem, has been added in scipy.sparse.csgraph.min_weight_full_bipartite_matching. In particular, this provides functionality analogous to that of scipy.optimize.linear_sum_assignment, but with improved performance for sparse inputs, and the ability to handle inputs whose dense representations would not fit in memory.

The time complexity of scipy.sparse.block_diag has been improved dramatically from quadratic to linear.

scipy.sparse.linalg improvements#

The vendored version of SuperLU has been updated

scipy.fft improvements#

The vendored pocketfft library now supports compiling with ARM neon vector extensions and has improved thread pool behavior.

scipy.spatial improvements#

The python implementation of KDTree has been dropped and KDTree is now implemented in terms of cKDTree. You can now expect cKDTree-like performance by default. This also means sys.setrecursionlimit no longer needs to be increased for querying large trees.

transform.Rotation has been updated with support for Modified Rodrigues Parameters alongside the existing rotation representations (PR gh-12667).

scipy.spatial.transform.Rotation has been partially cythonized, with some performance improvements observed

scipy.spatial.distance.cdist has improved performance with the minkowski metric, especially for p-norm values of 1 or 2.

scipy.stats improvements#

New distributions have been added to scipy.stats:

The fit method has been overridden for several distributions (laplace, pareto, rayleigh, invgauss, logistic, gumbel_l, gumbel_r); they now use analytical, distribution-specific maximum likelihood estimation results for greater speed and accuracy than the generic (numerical optimization) implementation.

The one-sample Cramér-von Mises test has been added as scipy.stats.cramervonmises.

An option to compute one-sided p-values was added to scipy.stats.ttest_1samp, scipy.stats.ttest_ind_from_stats, scipy.stats.ttest_ind and scipy.stats.ttest_rel.

The function scipy.stats.kendalltau now has an option to compute Kendall’s tau-c (also known as Stuart’s tau-c), and support has been added for exact p-value calculations for sample sizes > 171.

stats.trapz was renamed to stats.trapezoid, with the former name retained as an alias for backwards compatibility reasons.

The function scipy.stats.linregress now includes the standard error of the intercept in its return value.

The _logpdf, _sf, and _isf methods have been added to scipy.stats.nakagami; _sf and _isf methods also added to scipy.stats.gumbel_r

The sf method has been added to scipy.stats.levy and scipy.stats.levy_l for improved precision.

scipy.stats.binned_statistic_dd performance improvements for the following computed statistics: max, min, median, and std.

We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source Software for Science program for supporting many of these improvements to scipy.stats.

Deprecated features#

scipy.spatial changes#

Calling KDTree.query with k=None to find all neighbours is deprecated. Use KDTree.query_ball_point instead.

distance.wminkowski was deprecated; use distance.minkowski and supply weights with the w keyword instead.

Backwards incompatible changes#

scipy changes#

Using scipy.fft as a function aliasing numpy.fft.fft was removed after being deprecated in SciPy 1.4.0. As a result, the scipy.fft submodule must be explicitly imported now, in line with other SciPy subpackages.

scipy.interpolate changes#

scipy.linalg changes#

scipy.signal changes#

The output of decimate, lfilter_zi, lfiltic, sos2tf, and sosfilt_zi have been changed to match numpy.result_type of their inputs.

The window function slepian was removed. It had been deprecated since SciPy 1.1.

scipy.spatial changes#

cKDTree.query now returns 64-bit rather than 32-bit integers on Windows, making behaviour consistent between platforms (PR gh-12673).

scipy.stats changes#

The frechet_l and frechet_r distributions were removed. They were deprecated since SciPy 1.0.

Other changes#

setup_requires was removed from setup.py. This means that users invoking python setup.py install without having numpy already installed will now get an error, rather than having numpy installed for them via easy_install. This install method was always fragile and problematic, users are encouraged to use pip when installing from source.

Authors#

  • @endolith

  • @vkk800

  • aditya +

  • George Bateman +

  • Christoph Baumgarten

  • Peter Bell

  • Tobias Biester +

  • Keaton J. Burns +

  • Evgeni Burovski

  • Rüdiger Busche +

  • Matthias Bussonnier

  • Dominic C +

  • Corallus Caninus +

  • CJ Carey

  • Thomas A Caswell

  • chapochn +

  • Lucía Cheung

  • Zach Colbert +

  • Coloquinte +

  • Yannick Copin +

  • Devin Crowley +

  • Terry Davis +

  • Michaël Defferrard +

  • devonwp +

  • Didier +

  • divenex +

  • Thomas Duvernay +

  • Eoghan O’Connell +

  • Gökçen Eraslan

  • Kristian Eschenburg +

  • Ralf Gommers

  • Thomas Grainger +

  • GreatV +

  • Gregory Gundersen +

  • h-vetinari +

  • Matt Haberland

  • Mark Harfouche +

  • He He +

  • Alex Henrie

  • Chun-Ming Huang +

  • Martin James McHugh III +

  • Alex Izvorski +

  • Joey +

  • ST John +

  • Jonas Jonker +

  • Julius Bier Kirkegaard

  • Marcin Konowalczyk +

  • Konrad0

  • Sam Van Kooten +

  • Sergey Koposov +

  • Peter Mahler Larsen

  • Eric Larson

  • Antony Lee

  • Gregory R. Lee

  • Loïc Estève

  • Jean-Luc Margot +

  • MarkusKoebis +

  • Nikolay Mayorov

      1. McBain

  • Andrew McCluskey +

  • Nicholas McKibben

  • Sturla Molden

  • Denali Molitor +

  • Eric Moore

  • Shashaank N +

  • Prashanth Nadukandi +

  • nbelakovski +

  • Andrew Nelson

  • Nick +

  • Nikola Forró +

  • odidev

  • ofirr +

  • Sambit Panda

  • Dima Pasechnik

  • Tirth Patel +

  • Matti Picus

  • Paweł Redzyński +

  • Vladimir Philipenko +

  • Philipp Thölke +

  • Ilhan Polat

  • Eugene Prilepin +

  • Vladyslav Rachek

  • Ram Rachum +

  • Tyler Reddy

  • Martin Reinecke +

  • Simon Segerblom Rex +

  • Lucas Roberts

  • Benjamin Rowell +

  • Eli Rykoff +

  • Atsushi Sakai

  • Moritz Schulte +

  • Daniel B. Smith

  • Steve Smith +

  • Jan Soedingrekso +

  • Victor Stinner +

  • Jose Storopoli +

  • Diana Sukhoverkhova +

  • Søren Fuglede Jørgensen

  • taoky +

  • Mike Taves +

  • Ian Thomas +

  • Will Tirone +

  • Frank Torres +

  • Seth Troisi

  • Ronald van Elburg +

  • Hugo van Kemenade

  • Paul van Mulbregt

  • Saul Ivan Rivas Vega +

  • Pauli Virtanen

  • Jan Vleeshouwers

  • Samuel Wallan

  • Warren Weckesser

  • Ben West +

  • Eric Wieser

  • WillTirone +

  • Levi John Wolf +

  • Zhiqing Xiao

  • Rory Yorke +

  • Yun Wang (Maigo) +

  • Egor Zemlyanoy +

  • ZhihuiChen0903 +

  • Jacob Zhong +

A total of 122 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.6.0#

  • #1323: ndimage.shift destroys data from edges (Trac #796)

  • #1892: using rptfile= with an existing file causes a Fortran runtime…

  • #1903: ndimage.rotate misses some values (Trac #1378)

  • #1930: scipy.io.wavfile should be able to read 24 bit signed wave (Trac…

  • #3158: Odd casting behaviour of signal.filtfilt

  • #3203: interpolation.zoom incorrect output for certain cases

  • #3645: BUG: stats: mstats.pearsonr calculation is wrong if the masks…

  • #3665: Return Bunch objects from stats functions

  • #4922: unexpected zero output values from zoom

  • #5202: BUG: stats: Spurious warnings from the pdf method of several…

  • #5223: Zoom does not return the same values when resizing a sub-array…

  • #5396: scipy.spatial.distance.pdist documention bug

  • #5489: ValueError: failed to create intent(cache|hide)|optional array–…

  • #6096: loadmat drops dtype of empty arrays when squeeze_me=True

  • #6713: sicpy.ndimage.zoom returns artefacts and boundaries in some cases

  • #7125: Impossible to know number of dimensions in c function used by…

  • #7324: scipy.ndimage.zoom bad interpolation when downsampling (zoom…

  • #8131: BUG: geometric_transform wrap mode possible bug

  • #8163: LSMR fails on some random values when providing an x0

  • #8210: Why should I choose order > 1 for scipy.ndimage.zoom?

  • #8465: Unexpected behavior with reflect mode of ndimage.rotate

  • #8776: cdist behavior with Minkowsky and np.inf

  • #9168: documentation of pearson3 in scipy.stats unclear

  • #9223: Faster implementation of scipy.sparse.block_diag

  • #9476: Invalid index in signal.medfilt2d’s QUICK_SELECT

  • #9857: scipy.odr.Output.sd_beta is not standard error

  • #9865: Strange behavior of `ndimage.shift` and `ndimage.affine_transform`

  • #10042: Consider support for multivariate student-t distribution?

  • #10134: gausshyper distribution accepts invalid parameters

  • #10179: str+bytes concatenation error in test_lapack.py

  • #10216: cKDTree.query_ball_point speed regression

  • #10463: ENH: vectorize scipy.fft for more CPU architectures

  • #10593: Rename `sum` ndimage function

  • #10595: scipy.stats.ttest_1samp should support alternative hypothesis

  • #10610: ndimage.interpolation.spline_filter1d default value of mode

  • #10620: ndimage.interpolation.zoom() option to work like skimage.transform.resize()

  • #10711: Array Shapes Not Aligned Bug in scipy.optimize._lsq.lsq_linear.py

  • #10782: BUG: optimize: methods unknown to `scipy.optimize.show_options`

  • #10892: Possible typo in an equation of optimize/dual_annealing

  • #11020: signal.fftconvolve return a tuple including lag information

  • #11093: scipy.interpolate.interp1d can not handle datetime64

  • #11170: Use manylinux2014 to get aarch64/ppc64le support

  • #11186: BUG: stats: pearson3 CDF and SF functions incorrect when skew…

  • #11366: DeprecationWarning due to invalid escape sequences

  • #11403: Optimize raises “ValueError: `x0` violates bound constraints”…

  • #11558: ENH: IIR comb filter

  • #11559: BUG: iirdesign doesn’t fail for frequencies above Nyquist

  • #11567: scipy.signal.iirdesign doesn’t check consistency of wp and ws…

  • #11654: ENH: Add Negative Hypergeometric Distribution

  • #11720: BUG: stats: wrong shape from median_absolute_deviation for arrays…

  • #11746: BUG: stats: pearson3 returns size 1 arrays where other distributions…

  • #11756: Improve and fix *Spline docstrings and code

  • #11758: BUG: of scipy.interpolate.CubicSpline when `bc_type’ is set…

  • #11925: MAINT: remove character encoding check in CI?

  • #11963: Test failures - TestLinprogIPSparseCholmod

  • #12102: incorrect first moment of non central t-distribution

  • #12113: scipy.stats.poisson docs for rate = 0

  • #12152: ENH: signal.gauss_spline should accept a list

  • #12157: BUG: Iteration index initialisation is wrong in scipy.optimize.linesearch.scalar_search_wolfe2

  • #12162: Storing Rotation object in NumPy array returns an array with…

  • #12176: cannot modify the slice of an array returned by `wavfile.read`

  • #12190: retrieve leave colors from dendrogram

  • #12196: PERF: scipy.linalg.pinv is very slow compared to numpy.linalg.pinv

  • #12222: Interpolating categorical data (interp1d)

  • #12231: Is the p-value of the Kruskal-Wallis test two-sided?

  • #12249: ENH: least_squares: should not re-instanciate csr_matrix if already…

  • #12264: DOC: optimize: linprog method-specific function signature

  • #12290: DOC: Convex Hull areas are actually perimeters for 2-dimensional…

  • #12308: integrate.solve_ivp with DOP853 method fails when yDot = 0

  • #12326: BUG: stats.exponnorm.pdf returns 0 for small K

  • #12337: scipy.sparse.linalg.eigsh documentation is misleading

  • #12339: scipy.io.wavfile.write documentation has wrong example

  • #12340: sparse.lil_matrix.tocsr() fails silently on matrices with nzn…

  • #12350: Create a 2-parameter version of the gamma distribution

  • #12369: scipy.signal.correlate has an error in the documentation, examples…

  • #12373: interp1d returns incorrect values for step functions

  • #12378: interpolate.NearestNDInterpolator.__call__ & LinearNDInterpolator.__call__…

  • #12411: scipy.stats.spearmanr mishandles nan variables with “propogate”

  • #12413: DOC: Remove the “Basic functions” section from the SciPy tutorial.

  • #12415: scipy.stats.dirichlet documentation issue

  • #12419: least_squares ValueError with ‘lm’ method - regression from 1.4.1…

  • #12431: Request for Python wrapper for LAPACK’s ?pptrf (Cholesky factorization…

  • #12458: spearmanr with entire NaN columns produces errors

  • #12477: WIP: Addition of MLE for stats.invgauss/wald

  • #12483: reading .wav fails when the file is too big on python 3.6.0

  • #12490: BUG: stats: logistic and genlogistic logpdf overflow for large…

  • #12499: LinearNDInterpolator raises ValueError when value array has writeable=False…

  • #12523: Wrong key in __odrpack.c

  • #12547: typo in scipy/cluster/_hierarchy.pyx

  • #12549: DOC: least_squares return type is poorly formatted.

  • #12578: TST: test_bounds_infeasible_2 failing on wheels repo cron jobs

  • #12585: ENH: Add Multivariate Hypergeometric Distribution

  • #12604: unintuitive conversion in `scipy.constants.lambda2nu`

  • #12606: DOC: Invalid syntax in example.

  • #12665: List of possible bugs found by automated code analysis

  • #12696: scipy.optimize.fminbound, numpy depreciation warning Creating…

  • #12699: TestProjections.test_iterative_refinements_dense failure

  • #12701: TestDifferentialEvolutionSolver::test_L4 failing

  • #12719: Misleading scipy.signal.get_window() docstring with ‘exponential’…

  • #12740: circstd doesn’t handle R = hypot(S, C) > 1

  • #12749: ENH: interp1d Matlab compatibility

  • #12773: Meta-issue: ndimage spline boundary handling (NumFOCUS proposal)

  • #12813: optimize.root(method=”krylov”) fails if options[“tol_norm”] expects…

  • #12815: stats.zscore inconsistent behavior when all values are the same

  • #12840: scipy.signal.windows.dpss docstring typo

  • #12874: Rotation.random vs stats.special_ortho_group

  • #12881: FFT - documentation - examples - linspace construction

  • #12904: BUG: parsing in loadarff()

  • #12917: GitHub Actions nightly build triggered on forks

  • #12919: BUG: numerical precision, use gammaln in nct.mean

  • #12924: Rename Sample Based Integration Methods to Comply with Code of…

  • #12940: Should the minimum numpy for AIX be bumped to 1.16.5

  • #12951: A possible typo in scipy.stats.weightedtau

  • #12952: [Documentation question] Would it be more precise to specify…

  • #12970: Documentation presents second order sections as the correct choice…

  • #12982: Calculate standard error of the intercept in linregress

  • #12985: Possible wrong link in scipy.stats.wilcoxon doc

  • #12991: least_squares broken with float32

  • #13001: `OptimizeResult.message` from `L-BFGS-B` is a bytes, not…

  • #13030: BUG: lint_diff.py still fails for backport PRs

  • #13077: CI: codecov proper patch diffs

  • #13085: Build failing on main branch after HiGHS solver merge

  • #13088: BLD, BUG: wheel builds failure with HiGHS/optimize

  • #13099: Wrong output format for empty sparse results of kron

  • #13108: TST, CI: GitHub Actions MacOS Failures

  • #13111: BUG, DOC: refguide check is failing

  • #13127: ODR output file writing broken in conda env with system compilers

  • #13134: FromTravis migration tracker

  • #13140: BUG: signal: `ss2tf` incorrectly truncates output to integers.

  • #13179: CI: lint is failing because of output to stderr

  • #13182: Key appears twice in `test_optimize.test_show_options`

  • #13191: `scipy.linalg.lapack.dgesjv` overwrites original arrays if…

  • #13207: TST: Erratic test failure in test_cossin_separate

  • #13221: BUG: pavement.py glitch

  • #13239: Segmentation fault with `eigh(…, driver=”evx”)` for 10x10…

  • #13248: ndimage: improper cval handling for complex-valued inputs

Pull requests for 1.6.0#

  • #8032: ENH: Add in taylor window common in Radar processing

  • #8779: CI: Run benchmarks

  • #9361: ENH: Add Kendall’s tau-a and tau-c variants to scipy.stats.kendalltau()

  • #11068: ENH: Adds correlation_lags function to scipy.signal

  • #11119: ENH: add Cramer-von-Mises (one-sample) test to scipy.stats

  • #11249: ENH: optimize: interpolative decomposition redundancy removal…

  • #11346: ENH: add fast toeplitz matrix multiplication using FFT

  • #11413: ENH: Multivariate t-distribution (stale)

  • #11563: ENH: exact p-value in stats.kendalltau() for sample sizes > 171

  • #11691: ENH: add a stack of reversal functions to linprog

  • #12043: ENH: optimize: add HiGHS methods to linprog - continued

  • #12061: Check parameter consistensy in signal.iirdesign

  • #12067: MAINT: Cleanup OLDAPI in ndimage/src/_ctest.c

  • #12069: DOC: Add developer guidelines for implementing the nan_policy…

  • #12077: MAINT: malloc return value checks for cython

  • #12080: MAINT: Remove suppress_warnings

  • #12085: ENH: special: support ILP64 Lapack

  • #12086: MAINT: Cleanup PyMODINIT_FUNC used during 2to3

  • #12097: ENH: stats: override stats.rayleigh.fit with analytical MLE

  • #12112: DOC: Improve integrate.nquad docstring

  • #12125: TST: Add a test for stats.gmean with negative input

  • #12139: TST: Reduce flakiness in lsmr test

  • #12142: DOC: add a note in poisson distribution when mu=0 and k=0 in…

  • #12144: DOC: Update ndimage.morphology.distance_transform*

  • #12154: ENH: scipy.signal: allow lists in gauss_spline

  • #12170: ENH: scipy.stats: add negative hypergeometric distribution

  • #12177: MAINT: Correctly add input line to ValueError

  • #12183: ENH: Use fromfile where possible

  • #12186: MAINT: generalize tests in SphericalVoronoi

  • #12198: TST: Fix str + bytes error

  • #12199: ENH: match np.result_type behaviour in some scipy.signal functions

  • #12200: ENH: add FIR and IIR gammatone filters to scipy.signal

  • #12204: ENH: Add overwrite argument for odr.ODR() and its test.

  • #12206: MAINT:lstsq: Switch to tranposed problem if the array is tall

  • #12208: wavfile bugfixes and maintenance

  • #12214: DOC: fix docstring of “sd_beta” of odr.Output.

  • #12234: MAINT: prevent divide by zero warnings in scipy.optimize BFGS…

  • #12235: REL: set version to 1.6.0.dev0

  • #12237: BUG: Fix exit condition for QUICK_SELECT pivot

  • #12242: ENH: Rename ndimage.sum to ndimage.sum_labels (keep sum as alias)

  • #12243: EHN: Update SuperLU

  • #12244: MAINT: stats: avoid spurious warnings in ncx2.pdf

  • #12245: DOC: Fixed incorrect default for mode in scipy.ndimage.spline_filter1d

  • #12248: MAINT: clean up pavement.py

  • #12250: ENH: Replaced csr_matrix() by tocsr() and complemented docstring

  • #12253: TST, CI: turn on codecov patch diffs

  • #12259: MAINT: Remove duplicated test for import cycles

  • #12263: ENH: Rename LocalSearchWrapper bounds

  • #12265: BUG optimize: Accept np.matrix in lsq_linear

  • #12266: BUG: Fix paren error in dual annealing accept_reject calculation

  • #12269: MAINT: Included mismatched shapes in error messages.

  • #12279: MAINT: `__array__` and array protocols cannot be used in sparse.

  • #12281: DOC: update wheel DL docs

  • #12283: ENH: odr: ILP64 Blas support in ODR

  • #12284: ENH: linalg: support for ILP64 BLAS/LAPACK in f2py wrappers

  • #12286: ENH: Cythonize scipy.spatial.transform.Rotation

  • #12287: ENH: Read arbitrary bit depth (including 24-bit) WAVs

  • #12292: BLD: fix musl compilation

  • #12293: MAINT: Fix a DeprecationWarning in validate_runtests_log.py.

  • #12296: DOC: Clarify area/volume in scipy.spatial.ConvexHull docstrings

  • #12302: CI: Run travis builds on master to keep cache up to date

  • #12305: TST: Cleanup print statements in tests

  • #12323: ENH: Add a Bunch-like class to use as a backwards compatible…

  • #12324: BUG: io: Fix an error that occurs when attempting to raise a…

  • #12327: DOC: clarify docstrings of `query_ball_tree` and `query_pairs`

  • #12334: PERF: Improve cKDTree.query_ball_point constant time cython overhead

  • #12338: DOC: improve consistency and clarity of docs in linalg and sparse/linalg

  • #12341: DOC: add Examples for KDTree query_ball_tree and query_pairs

  • #12343: DOC: add examples for special.eval_legendre()

  • #12349: BUG: avoid overflow in sum() for 32-bit systems

  • #12351: DOC: Fix example wavfile to be 16bit

  • #12352: [BUG] Consider 0/0 division in DOP853 error estimation

  • #12353: Fix exception causes in vq.py

  • #12354: MAINT: Cleanup unneeded void* cast in setlist.pxd

  • #12355: TST: Remove hack for old win-amd64 bug

  • #12356: ENH: Faster implementation of scipy.sparse.block_diag (#9411…

  • #12357: MAINT,TST: update and run scipy/special/utils/convert.py

  • #12358: TST: Check mstat.skewtest pvalue

  • #12359: TST: Sparse matrix test with int64 indptr and indices

  • #12363: DOC: ref. in CloughTocher2DInterpolator

  • #12364: DOC: `sparse_distance_matrix` and `count_neighbors` examples

  • #12371: MAINT, CI: bump to latest stable OpenBLAS

  • #12372: MAINT: Minor cleanup of (c)KDTree tests

  • #12374: DEP: Deprecate `distance.wminkowski`

  • #12375: ENH: Add fast path for minkowski distance with p=1,2 and support…

  • #12376: Fix exception causes in most of the codebase

  • #12377: DOC: Quick fix - adds newline to correlation_lags docstring Examples…

  • #12381: BENCH: remove obsolete goal_time param

  • #12382: ENH: Replace KDTree with a thin wrapper over cKDTree

  • #12385: DOC: improve docstrings of interpolate.NearestNDInterpolator.__call__…

  • #12387: DOC/STY: add example to scipy.signal.correlate

  • #12393: CI: Replace the existing check for non-ASCII characters with…

  • #12394: CI: arm64 numpy now available

  • #12395: ENH: improve stats.binned_statistic_dd performance

  • #12396: DOC, MAINT: forward port 1.5.0 relnotes

  • #12398: API: Disable len() and indexing of Rotation instances with single…

  • #12399: MAINT: Replace some Unicode dash-like chars with an ASCII hyphen.

  • #12402: update .mailmap

  • #12404: MAINT: io: Change the encoding comment of test_mio.py to utf-8.

  • #12416: CI: cache mingw, azure pipelines

  • #12427: BUG: logic error in loop unrolling (cKDTree)

  • #12432: DOC: Remove the “Basic functions” section from the SciPy tutorial.

  • #12434: ENH:linalg: Add LAPACK wrappers pptrf/pptrs/ppsv/pptri/ppcon

  • #12435: DOC: fix simplex math for scipy.stats.dirichlet documentation

  • #12439: DOC: add API methods summary for NdPPoly

  • #12443: BUG: stats: Improve calculation of exponnorm.pdf

  • #12448: DOC: stats: Add “Examples” to the ansari docstring.

  • #12450: ENH: add `leaves_color_list` for cluster.dendrogram dictionary.

  • #12451: MAINT: remove “blacklist” terminology from code base

  • #12452: DOC: clarify the meaning of whitening for cluster.vq.whiten()

  • #12455: MAINT: clearer error message in setup.py

  • #12457: ENH: stats: override stats.pareto.fit with analytical MLE

  • #12460: check if column in spearman rho is entirely NaN or Inf

  • #12463: DOC: improve and clean up *Spline docstrings in fitpack2.py

  • #12474: ENH: linalg: speedup _sqrtm_triu by moving tight loop to Cython

  • #12476: ENH: add IIR comb filter to scipy.signal

  • #12484: Fix documentation for minimize

  • #12486: DOC: add a note in poisson distribution when mu=0 and k=0 in…

  • #12491: MAINT: forward port 1.5.1 release notes

  • #12508: Fix exception causes all over the codebase

  • #12514: ENH: stats: override stats.invgauss.fit with analytical MLE

  • #12519: PERF: Avoid np.zeros when custom initialization is needed anyway

  • #12520: DOC: Minor RST section renaming.

  • #12521: MAINT: Remove unused imports

  • #12522: PERF: Get rid of unnececssary allocation in VarReader5.cread_fieldnames

  • #12524: DOC: special: Set Axes3D rect to avoid clipping labels in plot.

  • #12525: Fix large sparse nnz

  • #12526: DOC: Remove double section and too long header underline.

  • #12527: Improve error message for wrong interpolation type

  • #12530: Move redundant logic outside loop for conditional speedup in…

  • #12532: ENH: Add norm={“forward”, “backward”} to `scipy.fft`

  • #12535: MAINT: Avoid sphinx deprecated aliases for SeeAlso and Only

  • #12540: BUG: fix odr.output.work_ind key bug and add its test.

  • #12541: ENH: add solver for minimum weight full bipartite matching

  • #12550: PERF: pickling speed of rv*

  • #12551: DOC: fix typo in cluster/_hierarchy.pyx

  • #12552: CI: Cleanup travis pip installs

  • #12556: BUG: Fix problem with Scipy.integrate.solve_bvp for big problems

  • #12557: MAINT: Use extern templates to improve sparsetools compile time

  • #12558: MAINT: Remove hack to allow scipy.fft to act like a function

  • #12563: MAINT: Remove unused mu0 in special/orthogonal.py

  • #12564: DOC: fix return type docstring for least_squares

  • #12565: DOC: stats: respond to query about Kruskal-Wallis test being…

  • #12566: BUG: Interpolate: use stable sort

  • #12568: Updated documentation for as_quat

  • #12571: DEP: remove deprecated slepian window

  • #12573: DEP: remove `frechet_l` and `frechet_r`

  • #12575: BUG: stats: fix multinomial.pmf NaNs when params sum > 1

  • #12576: MAINT: remove warning from LSQSphereBivariateSpline

  • #12582: ENH: Multivariate t-distribution

  • #12587: ENH: speed up rvs of gengamma in scipy.stats

  • #12588: DOC: add Examples add see also sections for LinearNDInterpolator,…

  • #12597: ENH: Add single-sided p-values to t-tests

  • #12599: Small update to scipy FFT tutorial

  • #12600: ENH: disjoint set data structure

  • #12602: BUG: add const for Read-only views in interpnd.pyx

  • #12605: BUG: correct `np.asanyarray` use in `scipy.constants.lambda2nu`

  • #12610: MAINT: forward port 1.5.2 release notes

  • #12612: MAINT: stats: Use explicit keyword parameters instead of `**kwds`.

  • #12616: DOC: make explicit docstring that interpolate.interp1d only accepts…

  • #12618: DOC: Minor doc formatting.

  • #12640: MAINT: stats: fix issues with scipy.stats.pearson3 docs, moment,…

  • #12647: TST: Add Boost ellipr[cdfgj]_data test data

  • #12648: DOC: Update special/utils/README with instructions

  • #12649: DOC: simplified pip quickstart guide

  • #12650: DOC: stats: Fix boxcox docstring: lambda can be negative.

  • #12655: DOC: update Steering Council members listed in governance docs

  • #12659: rv_sample expect bug

  • #12663: DOC: optimize: try to fix linprog method-specific documentation

  • #12664: BUG: stats: Fix logpdf with large negative values for logistic…

  • #12666: MAINT: Fixes from static analysis

  • #12667: ENH: Adding Modified Rodrigues Parameters to the Rotation class

  • #12670: DOC: Update documentation for Gamma distribution

  • #12673: API: Unconditionally return np.intp from cKDTree.query

  • #12677: MAINT: Add Autogenerated notice to ufuncs.pyi

  • #12682: MAINT: Remove _util._valarray

  • #12688: MAINT: add f2py-generated scipy.integrate files to .gitignore

  • #12689: BENCH: simplify benchmark setup, remove benchmarks/run.py

  • #12694: scipy/stats: Add laplace_asymmetric continuous distribution

  • #12695: DOC: update Ubuntu quickstart; conda compilers now work!

  • #12698: MAINT: Replace np.max with np.maximum

  • #12700: TST: bump test precision for constrained trustregion test

  • #12702: TST: bump test tolerance for `DifferentialEvolutionSolver.test_L4`

  • #12703: BUG: Improve input validation for sepfir2d

  • #12708: MAINT: fix a typo in scipy.sparse

  • #12709: BUG: bvls can fail catastrophically to converge

  • #12711: MAINT: Use platform.python_implementation to determine IS_PYPY

  • #12713: TST: Fix flaky test_lgmres

  • #12716: DOC: add examples and tutorial links for interpolate functions…

  • #12717: DOC: Fix Issue #5396

  • #12725: ENH: Support complex-valued images and kernels for many ndimage…

  • #12729: DEP: remove setup_requires

  • #12732: BENCH: skip benchmarks instead of hiding them when SCIPY_XSLOW=0

  • #12734: CI: Don’t ignore line-length in the lint_diff check.

  • #12736: DOC: Fix signal.windows.get_window() ‘exponential’ docstring

  • #12737: ENH: stats: override stats.gumbel_r.fit and stats.gumbel_l.fit…

  • #12738: ENH: stats: override stats.logistic.fit with system of equations…

  • #12743: BUG: Avoid negative variances in circular statistics

  • #12744: Prevent build error on GNU/Hurd

  • #12746: TST: parameterize the test cases in test_ndimage.py

  • #12752: DOC: Add examples for some root finding functions.

  • #12754: MAINT, CI: Azure windows deps multiline

  • #12756: ENH: stats: Add an sf method to levy for improved precision in…

  • #12757: ENH: stats: Add an sf method to levy_l for improved precision.

  • #12765: TST, MAINT: infeasible_2 context

  • #12767: Fix spline interpolation boundary handling for modes reflect…

  • #12769: DOC: syntax error in scipy.interpolate.bspl

  • #12770: ENH: add nearest-up rounding to scipy.interpolate.interp1d

  • #12771: TST: fix invalid input unit test for scipy.signal.gammatone

  • #12775: ENH: Adds quadratic_assignment with two methods

  • #12776: ENH: add grid-constant boundary handling in ndimage interpolation…

  • #12777: Add Taylor Window function - Common in Radar DSP

  • #12779: ENH: Improvements to pocketfft thread pool and ARM neon vectorization

  • #12788: API: Rename cKDTree n_jobs argument to workers

  • #12792: DOC: remove THANKS.txt file in favor of scipy.org

  • #12793: Add new flag to authors tool

  • #12802: BENCH: add scipy.ndimage.interpolation benchmarks

  • #12803: Do not pin the version of numpy in unsupported python versions

  • #12810: CI: fix 32-bit Linux build failure on Azure CI runs

  • #12812: ENH: support interpolation of complex-valued images

  • #12814: BUG: nonlin_solve shouldn’t pass non-vector dx to tol_norm

  • #12818: Update ckdtree.pyx

  • #12822: MAINT: simplify directed_hausdorff

  • #12827: DOC: Fix wrong name w being used instead of worN in docs.

  • #12831: DOC: fix typo in sparse/base.py

  • #12835: MAINT: stats: Improve vonmises PDF calculation.

  • #12839: ENH: scipy.stats: add multivariate hypergeometric distribution

  • #12843: changed M to N in windows.dpss

  • #12846: MAINT: update minimum NumPy version to 1.16.5

  • #12847: DOC: Unify the formula in docs of scipy.stats.pearsonr()

  • #12849: DOC: polish QAP docs for consistency and readability

  • #12852: ENH, MAINT: Bring KDTree interface to feature-parity with cKDTree

  • #12858: DOC: use :doi: and :arxiv: directives for references

  • #12872: lazily import multiprocessing.Pool in MapWrapper

  • #12878: DOC: document ScalarFunction

  • #12882: MAINT: stats: Change a test to use <= instead of strictly less…

  • #12885: numpy.linspace calls edited to ensure correct spacing.

  • #12886: DOC: stats: Add ‘versionadded’ to cramervonmises docstring.

  • #12899: TST: make a couple of tests expected to fail on 32-bit architectures

  • #12903: DOC: update Windows build guide and move into contributor guide

  • #12907: DOC: clarify which array the precenter option applies to

  • #12908: MAINT: spatial: Remove two occurrences of unused variables in…

  • #12909: ENH: stats: Add methods gumbel_r._sf and gumbel_r._isf

  • #12910: CI: travis: Remove some unnecessary code from .travis.yml.

  • #12911: Minor fixes to dendrogram plotting

  • #12921: CI: don’t run GitHub Actions on fork or in cron job

  • #12927: MAINT: rename integrate.simps to simpson

  • #12934: MAINT: rename trapz and cumtrapz to (cumulative_)trapezoid

  • #12936: MAINT: fix numerical precision in nct.stats

  • #12938: MAINT: fix linter on master

  • #12941: Update minimum AIX pinnings to match non AIX builds

  • #12955: BUG: Fixed wrong NaNs check in scipy.stats.weightedtau

  • #12958: ENH: stats: Implement _logpdf, _sf and _isf for nakagami.

  • #12962: Correcting that p should be in [0,1] for a variety of discrete…

  • #12964: BUG: added line.strip() to split_data_line()

  • #12968: ENH: stats: Use only an analytical formula or scalar root-finding…

  • #12971: MAINT: Declare support for Python 3.9

  • #12972: MAINT: Remove redundant Python < 3.6 code

  • #12980: DOC: Update documentation on optimize.rosen

  • #12983: ENH: improvements to stats.linregress

  • #12990: DOC: Clarify that using sos as output type for iirdesign can…

  • #12992: DOC: capitalization and formatting in lsmr

  • #12995: DOC: stats: Several documentation fixes.

  • #12996: BUG: Improve error messages for `range` arg of binned_statistic_dd

  • #12998: MAINT: approx_derivative with FP32 closes #12991

  • #13004: TST: isinstance(OptimizeResult.message, str) closes #13001

  • #13006: Keep correct dtype when loading empty mat arrays.

  • #13009: MAINT: clip SLSQP step within bounds

  • #13012: DOC: fix bilinear_zpk example labels

  • #13013: ENH: Add `subset` and `subsets` methods to `DisjointSet`…

  • #13029: MAINT: basinhopping callback for initial mininmisation

  • #13032: DOC: fix docstring errors in in stats.wilcoxon

  • #13036: BUG: forward port lint_diff shims

  • #13041: MAINT: dogbox ensure x is within bounds closes #11403

  • #13042: MAINT: forward port 1.5.4 release notes

  • #13046: DOC: Update optimize.least_squares doc for all tolerance must…

  • #13052: Typo fix for cluster documentation

  • #13054: BUG: fix `scipy.optimize.show_options` for unknown methods….

  • #13056: MAINT: fft: Fix a C++ compiler warning.

  • #13057: Minor fixes on doc of function csr_tocsc

  • #13058: DOC: stats: Replace np.float with np.float64 in a tutorial file.

  • #13059: DOC: stats: Update the “Returns” section of the linregress docstring.

  • #13060: MAINT: clip_x_for_func should be private

  • #13061: DOC: signal.win -> signal.windows.win in Examples

  • #13063: MAINT: Add suite-sparse and sksparse installation check

  • #13070: MAINT: stats: Remove a couple obsolete comments.

  • #13073: BUG: Fix scalar_search_wolfe2 to resolve #12157

  • #13078: CI, MAINT: migrate Lint to Azure

  • #13081: BLD: drop Python 3.6 support (NEP 29)

  • #13082: MAINT: update minimum NumPy version to 1.16.5 in a couple more…

  • #13083: DOC: update toolchain.rst

  • #13086: DOC: Update the Parameters section of the correlation docstring

  • #13087: ENH:signal: Speed-up Cython implementation of _sosfilt

  • #13089: BLD, BUG: add c99 compiler flag to HiGHS basiclu library

  • #13091: BUG: Fix GIL handling in _sosfilt

  • #13094: DOC: clarify “location” in docstring of cKDTree.query

  • #13095: Zoom resize update

  • #13097: BUG: fix CubicSpline(…, bc_type=”periodic”) #11758

  • #13100: BUG: sparse: Correct output format of kron

  • #13107: ENH: faster linear_sum_assignment for small cost matrices

  • #13110: CI, MAINT: refguide/asv checks to azure

  • #13112: CI: fix MacOS CI

  • #13113: CI: Install word list package for refguide-check

  • #13115: BUG: add value range check for signal.iirdesign()

  • #13116: CI: Don’t report name errors after an exception in refguide-check

  • #13117: CI: move sdist/pre-release test Azure

  • #13119: Improve error message on friedmanchisquare function

  • #13121: Fix factorial() for NaN on Python 3.10

  • #13123: BLD: Specify file extension for language standard version tests

  • #13128: TST: skip Fortran I/O test for ODR

  • #13130: TST: skip factorial() float tests on Python 3.10

  • #13136: CI:Add python dbg run to GH Actions

  • #13138: CI: Port coverage, 64-bit BLAS, GCC 4.8 build to azure

  • #13139: Fix edge case for mode=’nearest’ in ndimage.interpolation functions

  • #13141: BUG: signal: Fix data type of the numerator returned by ss2tf.

  • #13144: MAINT: stats: restrict gausshyper z > -1

  • #13146: typo in csr.py

  • #13148: BUG: stats: fix typo in stable rvs per gh-12870

  • #13149: DOC: spatial/stats: cross-ref random rotation matrix functions

  • #13151: MAINT: stats: Fix a test and a couple PEP-8 issues.

  • #13152: MAINT: stats: Use np.take_along_axis in the private function…

  • #13154: ENH: stats: Implement defined handling of constant inputs in…

  • #13156: DOC: maintain equal display range for ndimage.zoom example

  • #13159: CI: Azure: Don’t run tests on merge commits, except for coverage

  • #13160: DOC: stats: disambiguate location-shifted/noncentral

  • #13161: BUG: DifferentialEvolutionSolver.__del__ can fail in garbage…

  • #13163: BUG: stats: fix bug in spearmanr nan propagation

  • #13167: MAINT: stats: Fix a test.

  • #13169: BUG: stats: Fix handling of misaligned masks in mstats.pearsonr.

  • #13178: CI: testing.yml –> macos.yml

  • #13181: CI: fix lint

  • #13190: BUG: optimize: fix a duplicate key bug for `test_show_options`

  • #13192: BUG:linalg: Add overwrite option to gejsv wrapper

  • #13194: BUG: slsqp should be able to use rel_step

  • #13199: [skip travis] DOC: 1.6.0 release notes

  • #13203: fix typos

  • #13209: TST:linalg: set the seed for cossin test

  • #13212: [DOC] Backtick and directive consistency.

  • #13217: REL: add necessary setuptools and numpy version pins in pyproject.toml…

  • #13226: BUG: pavement.py file handle fixes

  • #13249: Handle cval correctly for ndimage functions with complex-valued…

  • #13253: BUG,MAINT: Ensure all Pool objects are closed

  • #13255: BUG:linalg: Fix heevx wrappers and add new tests

  • #13260: CI: fix macOS testing

  • #13269: CI: github actions: In the linux dbg tests, update apt before…

  • #13279: MAINT: 1.6.0 rc2 backports