SciPy 1.7.0 Release Notes#
Contents
-
-
scipy.cluster
improvementsscipy.interpolate
improvementsscipy.linalg
improvementsscipy.ndimage
improvementsscipy.optimize
improvementsscipy.signal
improvementsscipy.sparse
improvementsscipy.spatial
improvementsscipy.special
improvementsscipy.stats
improvements
-
scipy.linalg
deprecationsscipy.spatial
deprecations
SciPy 1.7.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.7.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#
A new submodule for quasi-Monte Carlo,
scipy.stats.qmc
, was addedThe documentation design was updated to use the same PyData-Sphinx theme as NumPy and other ecosystem libraries.
We now vendor and leverage the Boost C++ library to enable numerous improvements for long-standing weaknesses in
scipy.stats
scipy.stats
has six new distributions, eight new (or overhauled) hypothesis tests, a new function for bootstrapping, a class that enables fast random variate sampling and percentile point function evaluation, and many other enhancements.cdist
andpdist
distance calculations are faster for several metrics, especially weighted cases, thanks to a rewrite to a new C++ backend frameworkA new class for radial basis function interpolation, RBFInterpolator, was added to address issues with the Rbf class.
We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source
Software for Science program for supporting many of the improvements to
scipy.stats
.
New features#
scipy.cluster
improvements#
An optional argument, seed
, has been added to kmeans
and kmeans2
to
set the random generator and random state.
scipy.interpolate
improvements#
Improved input validation and error messages for fitpack.bispev
and
fitpack.parder
for scenarios that previously caused substantial confusion
for users.
The class RBFInterpolator was added to supersede the Rbf class. The new class has usage that more closely follows other interpolator classes, corrects sign errors that caused unexpected smoothing behavior, includes polynomial terms in the interpolant (which are necessary for some RBF choices), and supports interpolation using only the k-nearest neighbors for memory efficiency.
scipy.linalg
improvements#
An LAPACK wrapper was added for access to the tgexc
subroutine.
scipy.ndimage
improvements#
scipy.ndimage.affine_transform
is now able to infer the output_shape
from
the out
array.
scipy.optimize
improvements#
The optional parameter bounds
was added to
_minimize_neldermead
to support bounds constraints
for the Nelder-Mead solver.
trustregion
methods trust-krylov
, dogleg
and trust-ncg
can now
estimate hess
by finite difference using one of
["2-point", "3-point", "cs"]
.
halton
was added as a sampling_method
in scipy.optimize.shgo
.
sobol
was fixed and is now using scipy.stats.qmc.Sobol
.
halton
and sobol
were added as init
methods in
scipy.optimize.differential_evolution.
differential_evolution
now accepts an x0
parameter to provide an
initial guess for the minimization.
least_squares
has a modest performance improvement when SciPy is built
with Pythran transpiler enabled.
When linprog
is used with method
'highs'
, 'highs-ipm'
, or
'highs-ds'
, the result object now reports the marginals (AKA shadow
prices, dual values) and residuals associated with each constraint.
scipy.signal
improvements#
get_window
supports general_cosine
and general_hamming
window
functions.
scipy.signal.medfilt2d
now releases the GIL where appropriate to enable
performance gains via multithreaded calculations.
scipy.sparse
improvements#
Addition of dia_matrix
sparse matrices is now faster.
scipy.spatial
improvements#
distance.cdist
and distance.pdist
performance has greatly improved for
certain weighted metrics. Namely: minkowski
, euclidean
, chebyshev
,
canberra
, and cityblock
.
Modest performance improvements for many of the unweighted cdist
and
pdist
metrics noted above.
The parameter seed
was added to scipy.spatial.vq.kmeans and
scipy.spatial.vq.kmeans2.
The parameters axis
and keepdims
where added to
scipy.spatial.distance.jensenshannon
.
The rotation
methods from_rotvec
and as_rotvec
now accept a
degrees
argument to specify usage of degrees instead of radians.
scipy.special
improvements#
Wright’s generalized Bessel function for positive arguments was added as scipy.special.wright_bessel.
An implementation of the inverse of the Log CDF of the Normal Distribution is
now available via scipy.special.ndtri_exp
.
scipy.stats
improvements#
Hypothesis Tests#
The Mann-Whitney-Wilcoxon test, mannwhitneyu
, has been rewritten. It now
supports n-dimensional input, an exact test method when there are no ties,
and improved documentation. Please see “Other changes” for adjustments to
default behavior.
The new function scipy.stats.binomtest
replaces scipy.stats.binom_test
. The
new function returns an object that calculates a confidence intervals of the
proportion parameter. Also, performance was improved from O(n) to O(log(n)) by
using binary search.
The two-sample version of the Cramer-von Mises test is implemented in
scipy.stats.cramervonmises_2samp
.
The Alexander-Govern test is implemented in the new function
scipy.stats.alexandergovern
.
The new functions scipy.stats.barnard_exact
and scipy.stats. boschloo_exact
respectively perform Barnard’s exact test and Boschloo’s exact test
for 2x2 contingency tables.
The new function scipy.stats.page_trend_test
performs Page’s test for ordered
alternatives.
The new function scipy.stats.somersd
performs Somers’ D test for ordinal
association between two variables.
An option, permutations
, has been added in scipy.stats.ttest_ind
to
perform permutation t-tests. A trim
option was also added to perform
a trimmed (Yuen’s) t-test.
The alternative
parameter was added to the skewtest
, kurtosistest
,
ranksums
, mood
, ansari
, linregress
, and spearmanr
functions
to allow one-sided hypothesis testing.
Sample statistics#
The new function scipy.stats.differential_entropy
estimates the differential
entropy of a continuous distribution from a sample.
The boxcox
and boxcox_normmax
now allow the user to control the
optimizer used to minimize the negative log-likelihood function.
A new function scipy.stats.contingency.relative_risk
calculates the
relative risk, or risk ratio, of a 2x2 contingency table. The object
returned has a method to compute the confidence interval of the relative risk.
Performance improvements in the skew
and kurtosis
functions achieved
by removal of repeated/redundant calculations.
Substantial performance improvements in scipy.stats.mstats.hdquantiles_sd
.
The new function scipy.stats.contingency.association
computes several
measures of association for a contingency table: Pearsons contingency
coefficient, Cramer’s V, and Tschuprow’s T.
The parameter nan_policy
was added to scipy.stats.zmap
to provide options
for handling the occurrence of nan
in the input data.
The parameter ddof
was added to scipy.stats.variation
and
scipy.stats.mstats.variation
.
The parameter weights
was added to scipy.stats.gmean
.
Statistical Distributions#
We now vendor and leverage the Boost C++ library to address a number of
previously reported issues in stats
. Notably, beta
, binom
,
nbinom
now have Boost backends, and it is straightforward to leverage
the backend for additional functions.
The skew Cauchy probability distribution has been implemented as
scipy.stats.skewcauchy
.
The Zipfian probability distribution has been implemented as
scipy.stats.zipfian
.
The new distributions nchypergeom_fisher
and nchypergeom_wallenius
implement the Fisher and Wallenius versions of the noncentral hypergeometric
distribution, respectively.
The generalized hyperbolic distribution was added in
scipy.stats.genhyperbolic
.
The studentized range distribution was added in scipy.stats.studentized_range
.
scipy.stats.argus
now has improved handling for small parameter values.
Better argument handling/preparation has resulted in performance improvements for many distributions.
The cosine
distribution has added ufuncs for ppf
, cdf
, sf
, and
isf
methods including numerical precision improvements at the edges of the
support of the distribution.
An option to fit the distribution to data by the method of moments has been
added to the fit
method of the univariate continuous distributions.
Other#
scipy.stats.bootstrap
has been added to allow estimation of the confidence
interval and standard error of a statistic.
The new function scipy.stats.contingency.crosstab
computes a contingency
table (i.e. a table of counts of unique entries) for the given data.
scipy.stats.NumericalInverseHermite
enables fast random variate sampling
and percentile point function evaluation of an arbitrary univariate statistical
distribution.
New scipy.stats.qmc
module#
This new module provides Quasi-Monte Carlo (QMC) generators and associated helper functions.
It provides a generic class scipy.stats.qmc.QMCEngine
which defines a QMC
engine/sampler. An engine is state aware: it can be continued, advanced and
reset. 3 base samplers are available:
scipy.stats.qmc.Sobol
the well known Sobol low discrepancy sequence. Several warnings have been added to guide the user into properly using this sampler. The sequence is scrambled by default.scipy.stats.qmc.Halton
: Halton low discrepancy sequence. The sequence is scrambled by default.scipy.stats.qmc.LatinHypercube
: plain LHS design.
And 2 special samplers are available:
scipy.stats.qmc.MultinomialQMC
: sampling from a multinomial distribution using any of the basescipy.stats.qmc.QMCEngine
.scipy.stats.qmc.MultivariateNormalQMC
: sampling from a multivariate Normal using any of the basescipy.stats.qmc.QMCEngine
.
The module also provide the following helpers:
scipy.stats.qmc.discrepancy
: assess the quality of a set of points in terms of space coverage.scipy.stats.qmc.update_discrepancy
: can be used in an optimization loop to construct a good set of points.scipy.stats.qmc.scale
: easily scale a set of points from (to) the unit interval to (from) a given range.
Deprecated features#
scipy.linalg
deprecations#
scipy.linalg.pinv2 is deprecated and its functionality is completely subsumed into
scipy.linalg.pinv
Both
rcond
,cond
keywords ofscipy.linalg.pinv
andscipy.linalg.pinvh
were not working and now are deprecated. They are now replaced with functioningatol
andrtol
keywords with clear usage.
scipy.spatial
deprecations#
scipy.spatial.distance
metrics expect 1d input vectors but will callnp.squeeze
on their inputs to accept any extra length-1 dimensions. That behaviour is now deprecated.
Backwards incompatible changes#
Other changes#
We now accept and leverage performance improvements from the ahead-of-time
Python-to-C++ transpiler, Pythran, which can be optionally disabled (via
export SCIPY_USE_PYTHRAN=0
) but is enabled by default at build time.
There are two changes to the default behavior of scipy.stats.mannwhitenyu:
For years, use of the default
alternative=None
was deprecated; explicitalternative
specification was required. Use of the new default value ofalternative
, “two-sided”, is now permitted.Previously, all p-values were based on an asymptotic approximation. Now, for small samples without ties, the p-values returned are exact by default.
Support has been added for PEP 621 (project metadata in pyproject.toml
)
We now support a Gitpod environment to reduce the barrier to entry for SciPy development; for more details see Development environment quickstart guide (Gitpod).
Issues closed for 1.7.0#
#636: Statistics Review: mannwhitneyu (Trac #109)
#1346: signal.medfilt2d should fall back on signal.medfilt for types…
#2118: Mann-Whitney statistic returns incorrect results (Trac #1593)
#2158: special.chndtrix (ncx2.ppf) gives wrong results (Trac #1633)
#3284: build_sphinx weirdness
#3352: beta distribution sf
#4067: Mannwhitneyu with arrays full of nan still reports significance
#4080: entropy in Scipy
#4641: mstats.mannwhitneyu and stats.mannwhitneyu return inconsistent…
#5122: scipy.stats.binom.ppf Incorrect for p=0
#5180: Rbf interpolation - use only K nearest neighbors
#5258: affine_transform complains about output_shape when output array…
#5562: Wishart degrees of freedom should be $v > p-1$ instead of $v…
#5933: mstats_basic.py - mannwhitneyu [scipy/scipy/stats/mstats_basic.py]
#6409: _unequal_var_ttest_denom causes ZeroDivisionError in early samples
#6682: negative binomial survival function is imprecise
#6897: scipy.stats.mannwhitneyu of empty sets gives p=0.0 and does not…
#7303: stats.describe with nan_policy=omit returns matrix-wide minmax…
#7406: scipy.stats.binom.ppf returns nan for q between 0 and 1 if n…
#7437: ENH: add skewed Cauchy distribution to stats
#7542: DOC: stats tutorials: Questions on arcsine and Student t formulae
#7593: Meaning of `tol` argument in `scipy.optimize.minimize` is…
#8565: Error in SmoothSphereBivariateSpline(): “ValueError: Error code…
#8665: `scipy.ncx2.sf` should be monotone decreasing
#8836: scipy.optimize.linprog(method=’simplex’) needs to return duals
#9184: Mann-Whitney implementation wrong?
#9450: allow seeding of init methods in vq.kmeans2
#9704: RectSphereBivariateSpline fails for negative longitude
#9836: scipy.stats.rice gives incorrect results when s is very low compared…
#9904: Request/Proposal: Greatly improve scipy.interpolate.Rbf
#9981: stats.kruskal : add a warning for an input with 2 or more columns
#10358: DOC: linprog and linear_sum_assignment tutorials needed
#10908: Nakami fitting doesn’t converge (scipy.stats)
#10933: Add scaled inverse chi2 distribution
#11014: Barnard’s Test for More Powerful Hypothesis Testing of 2x2 Contingency…
#11050: Feature request: Nelder-Mead with bounds
#11086: scipy.stats.skew doesn’t work correctly for float point numbers
#11113: inconsistent result from ttest_ind and mannwhitneyu when used…
#11134: Wrong confidence interval for binomial distribution with p=0
#11325: Add axis parameter for scipy.spatial.distance.jensenshannon
#11474: scipy.stats.skellam.cdf(0) returns 0 for large mu1 = mu2
#11523: scipy.stats.zipf doesn’t implement zipf distribution
#11848: How to get Lagrange / lambda multipliers out of ‘linprog’ optimize…
#11909: Enable bounds for lambda in boxcox
#12118: Docstring missing defaults
#12132: Slow tests to be trimmed or moved to test(‘full’)
#12230: Dendrogram: enable leaves labelling with ‘labels’ when using…
#12282: scipy.stats.chisquare test does not check that observed and expected…
#12298: BUG: fmin_powell missing squeeze in 1.5.0rc
#12403: Add nan_policy to stats.zmap
#12518: Null hypothesis of Kolmogorov Smirnov test is not correctly described
#12534: Feature request: scipy.linalg.norm to deal with 0-size array
#12622: scipy.interpolate.interpn docstring example
#12635: scipy.stats.beta.ppf gives unexpexted results
#12669: Median-averaging of complex CSDs
#12731: stats.ncx2.cdf fails for nc >> x >> 1
#12778: Confusing documentation of scipy.stats.weightedtau
#12794: [Bug] The result of stats.beta.isf is inconsistent with stats.beta.sf
#12837: stats.mannwhitneyu could support arrays
#12868: Vector-valued interpolation in `interp2d`
#12922: Minimize with trust-constr method leads to TypeError if option…
#12929: The use of starred expressions to create data detracts from understanding…
#12965: domain of argument of scipy.interpolate.RectSphereBivariateSpline(u,…
#13025: Generalized Hyperbolic Distribution
#13090: Broken link in doc for signal.max_len_seq
#13101: MAINT: Upgrade python version in docker file
#13158: `signal.get_window()` has a missing doc link and cannot get…
#13173: Uninformative error message from bisplev function
#13234: BUG: stats: Wrong shape of burr.moment() and fisk.moment() when…
#13242: Does kmeans “drop” clusters?
#13243: tgsen uses an output argument for computing a default argument
#13245: Kurtosis returning 1 for array of same elements
#13257: GitHub Actions test failures for MacOS
#13272: scipy.stats.yeojohnson_llf doc mistake
#13280: Wrong results with hypergeom cdf
#13285: description correction in scipy.stats.t
#13287: Generate binomial CDF with mu instead of prob
#13294: BUG: stats: wrong bounds returned by ‘support’ method for distributions…
#13299: Typing for scipy.spatial
#13300: Add a single individual to a latinhypercube initial population…
#13311: MAINT: pavement.py PYVER is outdated
#13339: savemat discards dimension information if any dimension is zero
#13341: add scipy.stats.variation with an ddof parameter
#13353: Documentation: in scipy.stats.johnsonsu, parameter `a` can…
#13405: TST: add a few tests for sparse BSR ctor
#13410: BUG: skew for empty array raises
#13417: 10,000 times speedup for generating random numbers from the cosine…
#13440: python runtest.py -t path-to-test.py failed
#13454: Scipy cosine distance can be greater than 2
#13459: Broken link in cramervonmises documentation
#13494: One-word typo in the documentation of optimize.linprog_simplex
#13501: minimize using Powell methods with Bounds leads to “TypeError:…
#13509: signal.medfilt2d vs ndimage.median_filter
#13511: DOC: error in description of “direc” parameter of “fmin_powell”
#13526: TST: stats: intermittent `test_ttest_ind_randperm_alternative2…
#13536: `_within_tolerance` seems an unnecessary repetition of `numpy.isclose`
#13540: missing python 3.8 manylinux wheels on scipy-wheels-nightly
#13559: shape error in linprog with revised simplex
#13587: binned_statistic unreliable with single precision
#13589: Better argument preparation for distributions in stats package.
#13602: The crystallball distribution entropy is sometimes minus infinity
#13606: MAINT: mypy: some typing errors while running mypy + adding mypy…
#13608: Why does stats.binned_statistic_2d convert its values argument…
#13609: BUG: SciPy pip install -e gets unusable version spec
#13610: Highs solver did not provide a solution nor did it report a failure
#13614: BUG: invgauss.cdf should return the correct value when `mu`…
#13628: 1-letter typo in the definition of scipy.special.spence function…
#13634: mmwrite fails on dense, skew-symmetric array
#13646: Sparse matrix argmax() integer overflow on Windows 10
#13647: `scipy.stats.qmc.LatinHypercube` cannot sample single sample…
#13651: Documentation wrong in scipy.linalg.eigvalsh
#13664: BUG: gamma distribution’s inverse survival function overflows…
#13693: BUG: sokalmichener appears to incorrectly apply weights
#13697: BUG: stats: Spurious warning generated by arcsine.pdf at the…
#13704: Make it possible to pass a rank cut-off value relatively to the…
#13707: Kullback Leibler Divergence broadcasting no longer works
#13740: Scipy.optimize x0 out of bounds when it is within bounds.
#13744: scipy.interpolate.interp1d has inconsistent behavior for non-unique…
#13754: optimize.minimize ‘trust’ methods and finite difference Hessian…
#13762: MAINT, TST: aarch64 stats test failures showing up in wheels…
#13769: probplot draws fit line even when fit=False
#13791: BUG: stats: wrapcauchy.cdf does not broadcast the shape parameter…
#13793: CI: CircleCI doc build failure
#13840: manylinux1 builds are failing because of C99 usage in `special/_cosine.c`
#13850: CI: Homebrew is failing due to bintray
#13875: BUG: chi2_contingency with Yates correction
#13878: BUG: `signal.get_window` argument handling issue
#13880: Remove all usages of numpy.compat
#13896: Boschloo’s Test for More Powerful Hypothesis Testing of 2x2 Contingency…
#13923: Inverse of Log CDF of Normal Distribution
#13933: `signal.get_window` does not support `general_cosine` and…
#13950: DOC: scipy.spatial.KDTree.query
#13969: N=4 must not exceed M=3
#13970: Pearson’s original paper on chi-square test could be referenced.
#13984: Faster addition of sparse diagonal matrices
#13988: An error occurred when using scipy.io.wavfile of scipy 1.6 version…
#13997: BUG: sparse: Incorrect result from `dia_matrix.diagonal()`
#14005: MAINT: optimize: `curve_fit` input error msg can be improved.
#14038: MAINT: add type annotations for _sobol.pyx
#14048: DOC: missing git submodule information
#14055: linalg.solve: Unclear error when using assume_a=’her’ with real…
#14093: DOC: Inconsistency in the definition of default values in the…
#14158: TST, BUG: test_rbfinterp.py – test_interpolation_misfit_1d fails…
#14170: TST: signal submodule test_filtfilt_gust failing on 32-bit amd64…
#14194: MAINT: download-wheels.py missing import
#14199: Generated sources for biasedurn extension are broken in 1.7.0rc1
Pull requests for 1.7.0#
#4824: Permutation Ttest (new PR)
#4933: ENH: Update the Mann-Whitney-Wilcoxon test
#7702: ENH: stats: Add Skewed Cauchy Distribution
#8306: Optional Pythran support for scipy.signal.max_len_seq_inner
#10170: MAINT: stats: Implement cdf and ppf as ufuncs for the cosine…
#10454: ENH: Extend find_peaks_cwt to take numbers and iterables for…
#10844: ENH: add stats.qmc module with quasi Monte Carlo functionality
#11313: ENH: add Wright’s generalized Bessel function
#11352: ENH: stats: Add crosstab function.
#11477: FIX: bounded parameter in cdfchn.f gives bad results
#11695: ENH: stats: add method of moments to `rv_continuous.fit`
#11911: ENH: Added bounds to boxcox and boxcox_normmax
#12438: BUG: use ellipkm1 in elliptical filter design to prevent numerical…
#12531: ENH: stats: add Page’s L test
#12603: ENH: stats: Add `binomtest` to replace `binom_test`.
#12653: ENH: stats: add Somers’ D test
#12676: BUG: update median averaging in signal.csd
#12760: BUG: special: erfinv(x<<1) loses precision
#12801: ENH: Add single-sided p-values to remaining spearmanr and linregress
#12873: ENH: Stats: add Alexander Govern Test
#13008: ENH: Add ‘alternative’ to functions using normal CDF for p-value
#13040: BUG: Allow RectSphereBivariateSpline to accept negative longitude
#13048: ENH: stats: Add a function that computes the relative risk.
#13067: ENH: Add weights parameter to stats.gmean
#13084: ENH: fast Hankel transform
#13104: MAINT: upgrade python version (drop python 3.6) for docker dev…
#13153: ENH: added association measurements Pearsons Contingency Coefficient,…
#13166: ENH: stats: Add nan_policy to zmap.
#13175: MAINT: tests for tall cost matrices in `linear_sum_assignment`
#13177: BUG: raise NotImplementedError in fourier_ellipsoid when ndim…
#13184: BUG: stats: Fix min and max calculation of mstats.describe with…
#13188: DOC: stats: make null and alternative hypotheses of kstest more…
#13193: MAINT: stats: chisquare check sum of observed/expected frequencies
#13197: ENH/MAINT: HiGHS upstream enhancements and bug fixes
#13198: ENH: allow inference of output_shape from out array in affine_transform
#13204: ENH: stats: add Zipfian (different from Zipf/zeta) distribution
#13208: REL: set version to 1.7.0.dev0
#13216: TST: stats: break up and mark slow tests
#13224: Update docs for the weighted τ
#13230: ENH: linalg: Add LAPACK wrapper for tgexc.
#13232: MAINT: stats: raise error when input to kruskal has >1 dim
#13233: DOC: stats: fix MGF of arcsine and entropy of t in tutorial
#13236: MAINT: reorganize shared linear assignment tests
#13237: BENCH: Refactor stats.Distribution to easily add new distributions
#13238: BUG: stats: fix wrong shape output of burr and fisk distributions
#13240: MAINT: add tests of trivial cost matrices for linear sum assignment
#13252: DOC: optimize: add `optimize.linear_sum_assignment` tutorial.
#13254: BUG: Fix precision issues for constant input in skew and kurtosis
#13262: BUG: scipy.medfilt and .medfilt2d fixes
#13263: ENH: add Cramer-von Mises test for two samples
#13264: fix a minor typo in `stats.anderson` doc
#13268: ENH: stats: Add implementation of _entropy for the t distr.
#13273: DOC: stats: fix typo in Yeo-Johnson LL function documentation
#13275: MAINT: stats: Correct a comment in the _fitstart method of gamma.
#13283: BUG: stats: fix the cdf method of rv_discrete class
#13286: DOC: stats: clairify rv_continuous/discrete.stats example
#13288: DOC: stats: discrete distribution shape parameter restrictions
#13289: MAINT: fix a build warning in sigtoolsmodule.c
#13290: DOC: Expand the discussion of the nan_policy API.
#13291: MAINT: signal, stats: Use keepdims where appropriate.
#13292: DOC: stats: note another common parameterization of nbinom
#13293: DOC: Change broken link for default values to archived link
#13295: BUG: stats: fix the support method to return correct bounds
#13296: DOC: stats: Fix latex markup in the kstwo docstring.
#13297: TST: mark kde.logpdf overflow test as xslow
#13298: Generalized Hyperbolic Distribution
#13301: DOC: cluster: Add cluster number note to the docstring of cluster.vq.kmeans
#13302: BUG: Fix ndimage.morphology.distance_transform_* argument handling
#13303: CI: prevent Codecov giving false CI failures and wrong PR annotations
#13313: ENH: static typing for qhull
#13316: Pythran implementation of scipy.signal._spectral
#13317: DOC: forward port 1.6.0 relnotes
#13319: ENH: stats: add fast numerical inversion of distribution CDF
#13320: ENH: x0 for differential_evolution
#13324: DOC correct linprog highs versionadded to 1.6
#13326: MAINT: update numpydoc to v1.1.0
#13327: DOC: interpolate: improved docstring examples of `interpolate.interpn()`…
#13328: ENH: Boost stats distributions
#13330: ENH: stats: add noncentral hypergeometric distributions (Fisher’s…
#13331: MAINT/ENH: resolve mypy warnings/errors
#13332: DOC: interpolate: improved docstring of `interpolate.interp2d`…
#13333: ENH: stats: Some more _sf and _isf implementations.
#13334: MAINT: stats: Clean up a few defunct comments in _continuous_distns.py
#13336: Pythran version of scipy.optimize._group_columns
#13337: DOC|ENH: type hinting in scipy.integrate.simpson
#13346: ENH: stats: add ‘ddof’ parameter to the ‘variation’ function
#13355: ENH: stats: implement _logpdf, _sf and _isf for loggamma.
#13360: ENH|DOC: fix docstring and input validation in interpolate.RectSphereBivariateSpline
#13366: BUG: stats: Don’t raise ZeroDivisionError in _unequal_var_ttest_denom
#13370: ENH: fix ARGUS distribution for small parameters in stats
#13371: ENH: stats: add `bootstrap` for estimating confidence interval…
#13373: BUG: io/matlab: preserve dimensions of empty >=2D arrays
#13374: ENH: stats: add skewed Cauchy distribution
#13379: BUG: sparse: fix verbosity in sparse lsqr
#13383: TST: stats: mark many dimension permutation t-test slow
#13384: MAINT: Make keywords array static
#13388: PERF: Avoid duplicate mean calculations in skew and kurtosis
#13389: DOC: Fix deprecated directive syntax
#13390: DOC: Correct line length for Parameter Section underline
#13393: MAINT: stats: allow wishart dim - 1 < df < dim
#13395: DOC: fix typo in setup.py warning message
#13396: BUG: Fix MLE for Nakagami `nakagami_gen.fit`
#13397: MAINT:linalg: Fix tgsen family wrapper and ordqz
#13406: TST: add error handling tests for sparse BSR ctor
#13413: DOC: ultra-quickstart guide
#13418: BUG: Fix moment returning inconsistent types and shapes
#13423: DOC: Update example for leaf_label_func/dendrogram
#13431: ENH: stats: override _rvs for nhypergeom
#13432: Add indicator in NDInterpolator docstring that N must be > 1
#13434: DOC: stats: note relationship between scaled-inv-chi2 and invgamma
#13436: ENH: interpolate: add input validation to check input x-y is…
#13441: ENH: add functionality `barnard_exact` test to scipy.stats.
#13443: MAINT: stats: Updates for skewcauchy
#13444: DOC: clarify range of `a` parameter fpr johnsonsu/johnsonsb
#13445: DOC: fix runtests guidelines.
#13446: MAINT: stats: Add _fitstart method to wrapcauchy.
#13447: DEV: Update development Docker image
#13448: ENH: Add annotations for `scipy.spatial.distance`
#13451: DOC: minor formatting.
#13458: DOC: indent see also.
#13460: DOC: stats: Fix link to Cramer-von Mises wikipedia article.
#13461: DOC: reorganize scipy.stats overview docs page
#13463: DOC: misc formatting fixes
#13466: DOC: Typo in see also s/SmoothUni/SmoothBi/g
#13467: DOC: optimize: add description about `tol` argument for `minimize`.
#13469: MAINT: Refactor optimization methods to use scipy.stats.qmc
#13477: CI: pin numpy to 1.19.5 for the three macOS CI jobs
#13478: DOC: fix typos where double :: for Sphinx directives were missing
#13481: CI: pin numpy to 1.19.5 in the 4 parallel Windows builds on Azure
#13482: CI: use numpy 1.20.0 again in macOS CI
#13483: DOC: Multiple documentation syntax fixes.
#13484: Move some pythran config from CI to setup
#13487: DOC: add a tutorial about scipy.stats.qmc
#13492: ENH: GH actions should not run on forks
#13493: DEV: Enable gitpod for SciPy
#13495: DOC One-word typo in the documentation of optimize.linprog_simplex
#13499: DOC: describe LSAP implementation
#13502: BUG: Bounds created with lists weren’t working for Powell
#13507: MAINT, TST: stats: centralize invalid parameters list for all…
#13510: DOC: stats: fix small doc errors in ‘multivariate_hypergeom’
#13513: DOC: Added math notation in examples in ltisys.py
#13514: ENH: simplify low_0_bit function for Sobol
#13515: ENH: optimize: add bound constraint support for nelder-mead solver
#13516: DOC: reduce LaTeX usage for johnsonb docstring
#13519: BLD: remove build_sphinx support from setup.py
#13527: TST: stats: xfail ttest_ind_randperm_alternative2 on 32 bit
#13530: DOC: correct comparisons between median filter functions
#13532: ENH: release the GIL inside medfilt2d
#13538: DOC: optimize: fix minor doc error in ‘fmin_powell’ (#13511)
#13546: DOC: fix list of “mode” options for ndimage
#13549: ENH: stats: add ‘alternative’ keyword to some normality tests.
#13551: MAINT: add git to docker env
#13552: MAINT: stats: remove float_power shim
#13553: DOC: use support rather than a/b in stats tutorial
#13560: MAINT: optimize: improve linprog error message for sparse input…
#13562: MAINT: optimize: using np.isclose instead of _within_tolerance.
#13566: ENH: Speed up hdquantiles_sd()
#13569: BENCH: optimize: benchmark only HiGHS methods; add bigger linprog…
#13574: DOC: In description of cluster.hierarchy.dendrogram ‘level’ parameter,…
#13576: ENH: improve discrepancy performance
#13579: TST: Add pybind11 to tox environments
#13583: BUG: Fix Dockerfile apt-get installs
#13588: MAINT: forward port 1.6.1 relnotes.
#13593: BUG: stats: preserve sample dtype for bin edges
#13595: ENH: interpolate: add RBFInterpolator
#13596: DOC: Fix indentation in new_stats_distribution.rst.inc
#13601: Add dpss for get_window function
#13604: DOC: Correct dual annealing visiting param range.
#13605: Add Codecov badge to README
#13607: MAINT: stats: fix crystalball entropy
#13611: Better argument preparation for distributions in stats package.
#13612: Add docker run command for Windows cmd
#13613: MAINT, CI: mypy: fix typing errors + add mypy to CI
#13616: FIX: Return correct output for invgauss.cdf when mu is very small
#13617: MAINT: accept numbers and iterables for width in find_peaks_cwt
#13620: CI: disable the mypy CI job (partial revert of gh-13613)
#13621: DOC: signal: use array_like for input types
#13622: MAINT: clean up some unused files, make `mypy scipy` pass
#13623: CI: enable Mypy CI job again
#13624: TST: test more values for `visiting_param` input to `dual_annealing`
#13625: Rename integrate.simps to integrate.simpsons in documentation…
#13631: ENH: add a `stats.differential_entropy` function
#13633: BUG: stats.binned_statistic_2d user function expecting arrays
#13641: ENH: Added degrees parameter to rotvec
#13645: MAINT: mypy: don’t install numpy-stubs
#13649: BUG: sparse: csc_matrix.argmax() integer overflow
#13650: ENH: stats: add ‘alternative’ parameter to ansari
#13652: DOC: fix eigvalsh documentation (#13651)
#13654: BUG: Fix LatinHypercubes
#13656: DOC: Fix PCHIP references
#13657: TST: remove IPython warning in debug session
#13658: Remove spurious quotes in docstring
#13661: ENH: stats: improve efficiency of / fix bug in exact permutation…
#13667: MAINT: Make latest Docker image default
#13668: MAINT: add .theia/ to .gitignore
#13669: BLD: change SCIPY_USE_PYTHRAN default to `1`
#13676: ENH Small improvements for LSQR with damp
#13678: MAINT: add Pythran-generated files to .gitignore
#13679: MAINT: move the `conda develop .` in the Gitpod config
#13680: DOC: Add cKDTree note comparing it with KDTree
#13681: DOC: build doc updates on Pythran, compiled code, and cleanups
#13683: BUG: mmwrite correctly serializes non skew-symmetric arrays
#13684: FIX: fix numerical overflow in gamma.isf method
#13685: BUG: fix cosine distance range to 0-2
#13694: MAINT: fix warning emitted when NumPy version is incorrect
#13696: ENH: support trimming in ttest_ind
#13698: BUG: stats: Fix spurious warnings generated by arcsine.pdf
#13701: DEV: scipy.interpolate b-splines (periodic case)
#13702: DEP: Clean up spent deprecations in spatial.distance
#13703: MAINT: fix issues found by static code analysis
#13706: ENH: stats: Implement sf and isf for the laplace distribution.
#13711: MAINT: stats: fix broadcasting for scipy.stats.entropy
#13712: BUG: stats: Override _fitstart for the invweibull distribution.
#13713: DOC: update toolchain.rst to reflect windows universal C runtime
#13714: MAINT: stats: Remove an unused list from test_continuous_basic.py.
#13715: MAINT: stats: No need to suppress frechet deprecation warnings.
#13716: MAINT: use super() as described by PEP 3135
#13718: MAINT: new-style class, removing inheritance to object
#13721: MAINT: add a type-ignore for mpmath (#13721)
#13723: MAINT: mypy: ignore mpmath imports in mypy.ini
#13724: DOC: pydata sphinx theme
#13725: BENCH: add benchmark for Kendalltau
#13727: CI: simplify Pythran configuration setup for Azure
#13731: MAINT: stats: Some flake8-driven clean up.
#13732: ENH: stats: Studentized Range Distribution
#13735: DOC: correct Voronoi docstring
#13738: DOC: add example to wright_bessel
#13739: ENH: stats: Implement _sf and _isf for the chi distribution.
#13741: MAINT: prevent overwriting of x in minimize
#13747: DOC: Add note for interp1d for non-unique x-values
#13749: MAINT: forward port 1.6.2 relnotes
#13759: MAINT: simpson small performance speedups
#13765: FIX: npymath missing causing npy_log1p to be unknown
#13768: BENCH: Add missing pythran dependency
#13770: ENH: stats.contingency: Add the sparse option to crosstab.
#13774: DEP: Deprecate squeezing input vectors in spatial.distance
#13775: Enable trust region methods to use a finite difference Hessian…
#13777: DOC: Fix Ubuntu/Debian installation instructions
#13778: DOC: remove references to RandomState
#13782: MAINT: LBFGSB err msg on MAXLS changed closes #11718
#13785: BENCH: Add benchmark for cdist/pdist with weights
#13786: MAINT: Prepare cdist/pdist for C++ rework
#13787: MAINT: stats: move entropy and differential_entropy functions…
#13790: DOC: Add some dependencies for Dockerfile doc of scipy development.
#13792: BUG: stats: Fix broadcasting in wrapcauchy.cdf
#13795: MAINT: stats: add hypotests to __all__ in init.py, not stats.py
#13797: MAINT: stats: probplot: don’t plot least-squares fit line unless…
#13798: MAINT: fix incorrect code comment in `hierarchy.to_tree`
#13802: DEV: add environment.yml file for development with conda/mamba
#13803: DOC: fix doc build warning about arxiv role already being registered
#13804: DOC+MAINT: optimize: lb and ub in the Bounds constructor are…
#13807: MAINT: Dont use parallel Sphinx
#13808: MAINT: cluster.to_tree: more idiomatic looping over rows of matrix…
#13810: MAINT: add a CODEOWNERS file
#13811: MAINT: Add ci skip to azp
#13814: ENH/DOC: pydata sphinx theme polishing
#13817: DOC: Misc parameter typo and casing in scipy/linalg/_decomp_ldl.py
#13818: MAINT: stats: keep `entropy` importable from `scipy.stats.distributions`
#13820: BUG: update _kendall_p_exact ValueError to f-string
#13831: FIX:DEP: Allow better tolerance control for pinv and pinvh and…
#13832: BUG: stats: Fix rvs for levy_stable when alpha=1
#13833: MAINT: Add inline type hintings for stats.qmc
#13836: MAINT: Fix a couple compiler warnings.
#13838: TST: relax test tolerances for BinomTest
#13841: BLD: add `-std=c99` flag to scipy.special extensions using…
#13845: ENH: stats: add `method` parameter to `differential_entropy`…
#13847: TST: skip on optimize failure on macOS, mark one as xfail
#13848: DOC: optimize: move Nelder Mead doc from Unconstrained minimization…
#13849: DOC: Roadmap update
#13852: CI: fix temporary wrong brew version from GitHub
#13854: ENH: Update Scipy Gitpod
#13859: TST: fix ultra-slow ttest permutations test
#13860: MAINT: clean up LSAP error checking
#13863: DOC: remove seed in examples
#13865: DOC: optimize: The bounds param of differential_evolution is…
#13866: MAINT: special: Remove an unused variable from _poly_approx in…
#13867: DOC: stats: Explain meaning of alternatives for fisher_exact.
#13868: CI: fix the failing job on linux.
#13870: MAINT: move LSAP rectangular matrix handling into solver code
#13871: DOC: Add Gitpod documentation
#13876: Workflow : Add nightly release of NumPy in linux workflows
#13877: DOC: Conform to numpydoc + uniformity.
#13879: BUG: signal: fix get_window argument handling and add tests.
#13881: CI: remove .travis.yml, remove codecov from CircleCI
#13882: BLD: ensure incrementing dev version strings
#13886: TST: optimize: skip test_network_flow_limited_capacity w/ UMFPACK…
#13888: MAINT: Fix issues involving elif conditions
#13891: Rename InivariateSpline to UnivariateSpline
#13893: ENH: linprog HiGHS marginals/sensitivy analysis
#13894: DOC: Add blank line before `Return` section.
#13897: DOC: BLD: fix doc build version check, and improve build time
#13903: MAINT: Gitpod fixes
#13907: ENH: Rewrite minkowski metric in C++ with pybind11
#13909: Revert “Workflow : Add nightly release of NumPy in linux workflows”
#13910: DOC: update Readme
#13911: MAINT: use dict built-in rather than OrderedDict
#13920: BUG: Reactivate conda environment in init
#13925: BUG: stats: magnitude of Yates’ correction <= abs(observed-expected)…
#13926: DOC: correct return type in disjoint_set.subsets docstring
#13927: DOC/MAINT: Add copyright notice to qmc.primes_from_2_to
#13928: BUG: DOC: signal: fix need argument config and add missing doc…
#13929: REL: add PEP 621 (project metadata in pyproject.toml) support
#13931: MAINT: special: get rid of _logit.c.src
#13934: ENH: signal: make `get_window` supports `general_cosine`…
#13940: MAINT: QMCEngine d input validation
#13941: MAINT: forward port 1.6.3 relnotes
#13944: BUG: spatial: fix weight handling of `distance.sokalmichener`.
#13947: MAINT: Remove duplicate calculations in sokalmichener
#13949: DOC: minor grammar fixes in minimize and KDTree.query
#13951: ENH: Add Boschloo exact test to stats
#13956: ENH: spatial: add `axis` and `keepdims` optional argument…
#13963: MAINT: stats: Fix unused imports and a few other issues related…
#13971: DOC: Add Karl Pearson’s reference to chi-square test
#13972: ENH: cluster: add an optional argument `seed` for `kmeans`…
#13973: BLD: fix build warnings for causal/anticausal pointers in ndimage
#13975: ENH: set empty array norm to zero.
#13977: MAINT: signal: replace distutils templating with tempita
#13978: MAINT: improve validations and keyword only arguments for some…
#13979: ENH: Add Inverse of Log CDF of Normal Distribution
#13983: Fixing `ndimage.watershed_ift` tutorial’s documentation
#13987: DOC: Adding examples to docstrings in morphology: white_tophat,…
#13989: DOC: interpolate: improve examples of `RegularGridInterpolator`…
#13990: MAINT, DOC: optimize: Make the input validation explanation clear…
#13992: Workflow : Add nightly release of NumPy in linux workflows
#13995: Doc: Continuous integration information
#14000: BUG: sparse: Fix DIA.diagonal bug and add a regression test
#14004: ENH: Fast addition dia matrix
#14006: MAINT: optimize: add validation to check func parameter number…
#14008: BUG: Raise exception for inconsistent WAV header
#14009: DEP: Remove usage of numpy.compat
#14010: MAINT: add support for wheel DL proxy
#14012: DOC: Broaden Exact Test Reference
#14015: MAINT: remove brew update
#14017: BENCH: Add more formats for sparse arithmetic
#14018: BENCH: add benchmark for f_oneway
#14020: MAINT: modify np.int_ to np.int32 to make it the same for 32/64…
#14023: MAINT: Fix clang build and remove some unicode characters
#14025: BUG: sparse: fix DIA.setdiag issue
#14026: TST: optimize: xfail part of test_powell
#14029: CI: github macos fix
#14030: MAINT: use ‘yield from <expr>’ (PEP 380)
#14031: MAINT: new-style class, removing inheritance to object
#14032: MAINT: CXXFLAGS for Pythran
#14033: ENH: Port sqeuclidean and braycurtis to _distance_pybind
#14034: MAINT: Clean-up ‘next = __next__’
#14045: MAINT: bump PYVER pavement.py
#14047: DEV: initialize boost submodule in Gitpod Dockerfile
#14051: BLD: if boost submodule content is missing, error out early
#14052: DOC: missing submodule init information
#14057: DOC: special: Add Examples to `psi` docstring
#14058: BUG: fixed a dtype bug in linalg.solve.
#14060: Doc: Fix typo in documentation of spence function.
#14061: MAINT:stats: Type annotations for _sobol.pyx
#14062: DOC: A few small fixes in quickstart_gitpod.rst
#14063: DOC: signal: add Add Examples to `cont2discrete` docstring
#14064: DOC: optimize: Add Examples to fmin_bfgs docstring
#14065: Add example for scipy stats.trim1 under docstring
#14066: DOC add example to scipy.special.hermite
#14067: DOC add alpha docstring description, add example to docstring
#14070: DOC add parameters, return, and example to docstring
#14072: MAINT/TST: Fix tests failing with the nightly build of numpy.
#14075: DOC Improve the code snippet in signal.hilbert docstring.
#14076: DOC: Document Jensen-Shannon distance being accepted by cdist/pdist
#14079: BLD: Avoid importing scipy.stats during cythonize stage
#14082: MAINT: Remove old, commented extract_diagonal
#14083: MAINT: sparse: Remove defunct function extract_diagonal
#14085: ENH: Implement canberra distance in _distance_pybind
#14086: MAINT: Clear scipy namespace of entries better imported from…
#14088: Install Pythran from sources for python 3.10
#14092: BUG: Fixes issue with clang.
#14094: DOC: Correct the inconsistence definition of Default in class…
#14105: TST: stats: mannwhitneyu: check that mstats and stats mannwhitneyu…
#14106: DOC: stats.mstats: mannwhitneyu: the returned statistic is the…
#14107: ENH: stats: bootstrap: add `vectorized` parameter; automatically…
#14109: BUG: fix two issues in the fblas signature files
#14110: DOC: mailmap update
#14113: ENH: stats: bootstrap: add `paired` parameter
#14116: MAINT: fix deprecated Python C API usage in odr
#14118: DOC: 1.7.0 release notes
#14125: DOC: fix typo
#14126: ENH: stats: bootstrap: add `batch` parameter to control batch…
#14127: CI: upgrade pip in benchmarks CI run
#14130: BUG: Fix trust-constr report TypeError if verbose is set to 2…
#14133: MAINT: interpolate: raise NotImplementedError not ValueError
#14139: FIX/DOC: lsqr doctests print failure
#14145: MAINT: 1.7.x version pins (“backport”)
#14146: MAINT: commit count if no tag
#14164: TST, BUG: fix rbf matrix value
#14166: CI, MAINT: restrictions on pre-release CI
#14171: TST: signal: Bump tolerances for a test of Gustafsson’s…
#14175: TST: stats: Loosen tolerance in some binomtest tests.
#14182: MAINT: stats: Update ppcc_plot and ppcc_max docstring.
#14195: MAINT: download-wheels missing import
#14230: REL: stop shipping generated Cython sources in sdist