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. Newgrid_mode
option forscipy.ndimage.zoom
to enable results consistent with scikit-image’srescale
.scipy.optimize.linprog
has fast, new methods for large, sparse problems from theHiGHS
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 asymmetric Laplace continuous distribution has been added as
scipy.stats.laplace_asymmetric
.The negative hypergeometric distribution has been added as
scipy.stats.nhypergeom
.The multivariate t distribution has been added as
scipy.stats.multivariate_t
.The multivariate hypergeometric distribution has been added as
scipy.stats.multivariate_hypergeom
.
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.
Fixed a bug in
scipy.optimize.dual_annealing
accept_reject
calculation that caused uphill jumps to be accepted less frequently.The time required for (un)pickling of
scipy.stats.rv_continuous
,scipy.stats.rv_discrete
, and scipy.stats.rv_frozen has been significantly reduced (gh12550). Inheriting subclasses should note that__setstate__
no longer calls__init__
upon unpickling.
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