chore(deps): update dependency scipy to v1.7.3#7325
Merged
leahecole merged 2 commits intoJan 7, 2022
Conversation
leahecole
reviewed
Jan 7, 2022
leahecole
approved these changes
Jan 7, 2022
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==1.4.1->==1.7.3==1.5.4->==1.7.3Release Notes
scipy/scipy
v1.7.3Compare Source
SciPy 1.7.3 Release Notes
SciPy
1.7.3is a bug-fix release that provides binary wheelsfor MacOS arm64 with Python
3.8,3.9, and3.10. The MacOS arm64 wheelsare only available for MacOS version
12.0and greater, as explainedin Issue 14688.
Authors
A total of 6 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.
v1.7.2Compare Source
SciPy 1.7.2 Release Notes
SciPy
1.7.2is a bug-fix release with no new featurescompared to
1.7.1. Notably, the release includes wheelsfor Python
3.10, and wheels are now built with a newerversion of OpenBLAS,
0.3.17. Python3.10wheels are providedfor MacOS x86_64 (thin, not universal2 or arm64 at this time),
and Windows/Linux 64-bit. Many wheels are now built with newer
versions of manylinux, which may require newer versions of pip.
Authors
A total of 14 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.
v1.7.1Compare Source
SciPy 1.7.1 Release Notes
SciPy
1.7.1is a bug-fix release with no new featurescompared to
1.7.0.Authors
A total of 9 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.
v1.7.0Compare Source
SciPy 1.7.0 Release Notes
SciPy
1.7.0is the culmination of6months of hard work. It containsmany 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 -Wdand check forDeprecationWarnings).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 NumPy1.16.5or greater.For running on PyPy, PyPy3
6.0+is required.Highlights of this release
scipy.stats.qmc, was addedNumPy and other ecosystem libraries.
improvements for long-standing weaknesses in
scipy.statsscipy.statshas 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.
cdistandpdistdistance calculations are faster for several metrics,especially weighted cases, thanks to a rewrite to a new C++ backend framework
RBFInterpolator, wasadded to address issues with the
Rbfclass.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.clusterimprovementsAn optional argument,
seed, has been added tokmeansandkmeans2toset the random generator and random state.
scipy.interpolateimprovementsImproved input validation and error messages for
fitpack.bispevandfitpack.parderfor scenarios that previously caused substantial confusionfor users.
The class
RBFInterpolatorwas added to supersede theRbfclass. The newclass 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.linalgimprovementsAn LAPACK wrapper was added for access to the
tgexcsubroutine.scipy.ndimageimprovementsscipy.ndimage.affine_transformis now able to infer theoutput_shapefromthe
outarray.scipy.optimizeimprovementsThe optional parameter
boundswas added to_minimize_neldermeadto support bounds constraintsfor the Nelder-Mead solver.
trustregionmethodstrust-krylov,doglegandtrust-ncgcan nowestimate
hessby finite difference using one of["2-point", "3-point", "cs"].haltonwas added as asampling_methodinscipy.optimize.shgo.sobolwas fixed and is now usingscipy.stats.qmc.Sobol.haltonandsobolwere added asinitmethods inscipy.optimize.differential_evolution.differential_evolutionnow accepts anx0parameter to provide aninitial guess for the minimization.
least_squareshas a modest performance improvement when SciPy is builtwith Pythran transpiler enabled.
When
linprogis used withmethod'highs','highs-ipm', or'highs-ds', the result object now reports the marginals (AKA shadowprices, dual values) and residuals associated with each constraint.
scipy.signalimprovementsget_windowsupportsgeneral_cosineandgeneral_hammingwindowfunctions.
scipy.signal.medfilt2dnow releases the GIL where appropriate to enableperformance gains via multithreaded calculations.
scipy.sparseimprovementsAddition of
dia_matrixsparse matrices is now faster.scipy.spatialimprovementsdistance.cdistanddistance.pdistperformance has greatly improved forcertain weighted metrics. Namely:
minkowski,euclidean,chebyshev,canberra, andcityblock.Modest performance improvements for many of the unweighted
cdistandpdistmetrics noted above.The parameter
seedwas added toscipy.spatial.vq.kmeansandscipy.spatial.vq.kmeans2.The parameters
axisandkeepdimswhere added toscipy.spatial.distance.jensenshannon.The
rotationmethodsfrom_rotvecandas_rotvecnow accept adegreesargument to specify usage of degrees instead of radians.scipy.specialimprovementsWright'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.statsimprovementsHypothesis Tests
The Mann-Whitney-Wilcoxon test,
mannwhitneyu, has been rewritten. It nowsupports 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.binomtestreplacesscipy.stats.binom_test. Thenew 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_exactandscipy.stats. boschloo_exactrespectively perform Barnard's exact test and Boschloo's exact test
for 2x2 contingency tables.
The new function
scipy.stats.page_trend_testperforms Page's test for orderedalternatives.
The new function
scipy.stats.somersdperforms Somers' D test for ordinalassociation between two variables.
An option,
permutations, has been added inscipy.stats.ttest_indtoperform permutation t-tests. A
trimoption was also added to performa trimmed (Yuen's) t-test.
The
alternativeparameter was added to theskewtest,kurtosistest,ranksums,mood,ansari,linregress, andspearmanrfunctionsto allow one-sided hypothesis testing.
Sample statistics
The new function
scipy.stats.differential_entropyestimates the differentialentropy of a continuous distribution from a sample.
The
boxcoxandboxcox_normmaxnow allow the user to control theoptimizer used to minimize the negative log-likelihood function.
A new function
scipy.stats.contingency.relative_riskcalculates therelative 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
skewandkurtosisfunctions achievedby removal of repeated/redundant calculations.
Substantial performance improvements in
scipy.stats.mstats.hdquantiles_sd.The new function
scipy.stats.contingency.associationcomputes severalmeasures of association for a contingency table: Pearsons contingency
coefficient, Cramer's V, and Tschuprow's T.
The parameter
nan_policywas added toscipy.stats.zmapto provide optionsfor handling the occurrence of
nanin the input data.The parameter
ddofwas added toscipy.stats.variationandscipy.stats.mstats.variation.The parameter
weightswas added toscipy.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,nbinomnow have Boost backends, and it is straightforward to leveragethe 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_fisherandnchypergeom_walleniusimplement 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.argusnow has improved handling for small parameter values.Better argument handling/preparation has resulted in performance improvements
for many distributions.
The
cosinedistribution has added ufuncs forppf,cdf,sf, andisfmethods including numerical precision improvements at the edges of thesupport of the distribution.
An option to fit the distribution to data by the method of moments has been
added to the
fitmethod of the univariate continuous distributions.Other
scipy.stats.bootstraphas been added to allow estimation of the confidenceinterval and standard error of a statistic.
The new function
scipy.stats.contingency.crosstabcomputes a contingencytable (i.e. a table of counts of unique entries) for the given data.
scipy.stats.NumericalInverseHermiteenables fast random variate samplingand percentile point function evaluation of an arbitrary univariate statistical
distribution.
New
scipy.stats.qmcmoduleThis new module provides Quasi-Monte Carlo (QMC) generators and associated
helper functions.
It provides a generic class
scipy.stats.qmc.QMCEnginewhich defines a QMCengine/sampler. An engine is state aware: it can be continued, advanced and
reset. 3 base samplers are available:
scipy.stats.qmc.Sobolthe 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 isscrambled by default.
scipy.stats.qmc.LatinHypercube: plain LHS design.And 2 special samplers are available:
scipy.stats.qmc.MultinomialQMC: sampling from a multinomial distributionusing any of the base
scipy.stats.qmc.QMCEngine.scipy.stats.qmc.MultivariateNormalQMC: sampling from a multivariate Normalusing any of the base
scipy.stats.qmc.QMCEngine.The module also provide the following helpers:
scipy.stats.qmc.discrepancy: assess the quality of a set of points in termsof space coverage.
scipy.stats.qmc.update_discrepancy: can be used in an optimization loop toconstruct a good set of points.
scipy.stats.qmc.scale: easily scale a set of points from (to) the unitinterval to (from) a given range.
Deprecated features
scipy.linalgdeprecationsscipy.linalg.pinv2is deprecated and its functionality is completelysubsumed into
scipy.linalg.pinvrcond,condkeywords ofscipy.linalg.pinvandscipy.linalg.pinvhwere not working and now are deprecated. They are nowreplaced with functioning
atolandrtolkeywords with clear usage.scipy.spatialdeprecationsscipy.spatial.distancemetrics expect 1d input vectors but will callnp.squeezeon their inputs to accept any extra length-1 dimensions. Thatbehaviour is now deprecated.
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:alternative=Nonewas deprecated; explicitalternativespecification was required. Use of the new default value ofalternative, "two-sided", is now permitted.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 :ref:
quickstart-gitpod.Authors
A total of 126 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.
v1.6.3Compare Source
SciPy 1.6.3 Release Notes
SciPy
1.6.3is a bug-fix release with no new featurescompared to
1.6.2.Authors
A total of 8 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.
v1.6.2Compare Source
SciPy 1.6.2 Release Notes
SciPy
1.6.2is a bug-fix release with no new featurescompared to
1.6.1. This is also the first SciPy releaseto place upper bounds on some dependencies to improve
the long-term repeatability of source builds.
Authors
A total of 6 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.
v1.6.1Compare Source
SciPy 1.6.1 Release Notes
SciPy
1.6.1is a bug-fix release with no new featurescompared to
1.6.0.Please note that for SciPy wheels to correctly install with pip on
macOS 11, pip
>= 20.3.3is needed.Authors
A total of 11 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.
v1.6.0Compare Source
SciPy 1.6.0 Release Notes
SciPy
1.6.0is the culmination of 6 months of hard work. It containsmany 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 -Wdand check forDeprecationWarnings).Our development attention will now shift to bug-fix releases on the
1.6.xbranch, and on adding new features on the master branch.This release requires Python
3.7+and NumPy1.16.5or greater.For running on PyPy, PyPy3
6.0+is required.Highlights of this release
scipy.ndimageimprovements: Fixes and ehancements to boundary extensionmodes for interpolation functions. Support for complex-valued inputs in many
filtering and interpolation functions. New
grid_modeoption forscipy.ndimage.zoomto enable results consistent with scikit-image'srescale.scipy.optimize.linproghas fast, new methods for large, sparse problemsfrom the
HiGHSlibrary.scipy.statsimprovements including new distributions, a new test, andenhancements to existing distributions and tests
New features
scipy.specialimprovementsscipy.specialnow has improved support for 64-bitLAPACKbackendscipy.odrimprovementsscipy.odrnow has support for 64-bit integerBLASscipy.odr.ODRhas gained an optionaloverwriteargument so that existingfiles may be overwritten.
scipy.integrateimprovementsSome renames of functions with poor names were done, with the old names
retained without being in the reference guide for backwards compatibility
reasons:
integrate.simpswas renamed tointegrate.simpsonintegrate.trapzwas renamed tointegrate.trapezoidintegrate.cumtrapzwas renamed tointegrate.cumulative_trapezoidscipy.clusterimprovementsscipy.cluster.hierarchy.DisjointSethas been added for incrementalconnectivity queries.
scipy.cluster.hierarchy.dendrogramreturn value now also includes leaf colorinformation in
leaves_color_list.scipy.interpolateimprovementsscipy.interpolate.interp1dhas a new methodnearest-up, similar to theexisting method
nearestbut rounds half-integers up instead of down.scipy.ioimprovementsSupport 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.linalgimprovementsThe new function
scipy.linalg.matmul_toeplitzuses the FFT to compute theproduct of a Toeplitz matrix with another matrix.
scipy.linalg.sqrtmandscipy.linalg.logmhave performance improvementsthanks to additional Cython code.
Python
LAPACKwrappers have been added forpptrf,pptrs,ppsv,pptri, andppcon.scipy.linalg.normand thesvdfamily of functions will now use 64-bitinteger backends when available.
scipy.ndimageimprovementsscipy.ndimage.convolve,scipy.ndimage.correlateand their 1d counterpartsnow 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.ndimageinterpolation functions (i.e.affine_transform,geometric_transform,map_coordinates,rotate,shift,zoom).A new boundary mode,
grid-wrapwas added which wraps images periodically,using a period equal to the shape of the input image grid. This is in contrast
to the existing
wrapmode which uses a period that is one sample smallerthan the original signal extent along each dimension.
A long-standing bug in the
reflectboundary condition has been fixed andthe mode
grid-mirrorwas introduced as a synonym forreflect.A new boundary mode,
grid-constantis now available. This is similar tothe existing ndimage
constantmode, but interpolation will still performedat coordinate values outside of the original image extent. This
grid-constantmode is consistent with OpenCV'sBORDER_CONSTANTmodeand scikit-image's
constantmode.Spline pre-filtering (used internally by
ndimageinterpolation functionswhen
order >= 2), now supports all boundary modes rather than alwaysdefaulting to mirror boundary conditions. The standalone functions
spline_filterandspline_filter1dhave analytical boundary conditionsthat match modes
mirror,grid-wrapandreflect.scipy.ndimageinterpolation functions now accept complex-valued inputs. Inthis case, the interpolation is applied independently to the real and
imaginary components.
The
ndimagetutorials(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.zoomnow has agrid_modeoption that changes the coordinateof 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
resizeandrescalefunctions (and OpenCV'scv2.resize).scipy.optimizeimprovementsscipy.optimize.linproghas fast, new methods for large, sparse problems fromthe
HiGHSC++ library.method='highs-ds'uses a high performance dualrevised simplex implementation (HSOL),
method='highs-ipm'uses aninterior-point method with crossover, and
method='highs'chooses betweenthe two automatically. These methods are typically much faster and often exceed
the accuracy of other
linprogmethods, so we recommend explicitlyspecifying one of these three method values when using
linprog.scipy.optimize.quadratic_assignmenthas been added for approximate solutionof the quadratic assignment problem.
scipy.optimize.linear_sum_assignmentnow has a substantially reduced overheadfor small cost matrix sizes
scipy.optimize.least_squareshas improved performance when the user providesthe jacobian as a sparse jacobian already in
csr_matrixformatscipy.optimize.linprognow has anrr_methodargument for specificationof the method used for redundancy handling, and a new method for this purpose
is available based on the interpolative decomposition approach.
scipy.signalimprovementsscipy.signal.gammatonehas been added to design FIR or IIR filters thatmodel the human auditory system.
scipy.signal.iircombhas been added to design IIR peaking/notching combfilters that can boost/attenuate a frequency from a signal.
scipy.signal.sosfiltperformance has been improved to avoid some previously-observed slowdowns
scipy.signal.windows.taylorhas been added--the Taylor window function iscommonly used in radar digital signal processing
scipy.signal.gauss_splinenow supportslisttype input for consistencywith other related SciPy functions
scipy.signal.correlation_lagshas been added to allow calculation of the lag/displacement indices array for 1D cross-correlation.
scipy.sparseimprovementsA 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, thisprovides functionality analogous to that of
scipy.optimize.linear_sum_assignment, but with improved performance for sparseinputs, and the ability to handle inputs whose dense representations would not
fit in memory.
The time complexity of
scipy.sparse.block_diaghas been improved dramaticallyfrom quadratic to linear.
scipy.sparse.linalgimprovementsThe vendored version of
SuperLUhas been updatedscipy.fftimprovementsThe vendored
pocketfftlibrary now supports compiling with ARM neon vectorextensions and has improved thread pool behavior.
scipy.spatialimprovementsThe python implementation of
KDTreehas been dropped andKDTreeis nowimplemented in terms of
cKDTree. You can now expectcKDTree-likeperformance by default. This also means
sys.setrecursionlimitno longerneeds to be increased for querying large trees.
transform.Rotationhas been updated with support for Modified RodriguesParameters alongside the existing rotation representations (PR gh-12667).
scipy.spatial.transform.Rotationhas been partially cythonized, with someperformance improvements observed
scipy.spatial.distance.cdisthas improved performance with theminkowskimetric, especially for p-norm values of 1 or 2.
scipy.statsimprovementsNew distributions have been added to
scipy.stats:scipy.stats.laplace_asymmetric.scipy.stats.nhypergeom.scipy.stats.multivariate_t.scipy.stats.multivariate_hypergeom.The
fitmethod has been overridden for several distributions (laplace,pareto,rayleigh,invgauss,logistic,gumbel_l,gumbel_r); they now use analytical, distribution-specific maximumlikelihood 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_indandscipy.stats.ttest_rel.The function
scipy.stats.kendalltaunow has an option to compute Kendall'stau-c (also known as Stuart's tau-c), and support has been added for exact
p-value calculations for sample sizes
> 171.stats.trapzwas renamed tostats.trapezoid, with the former name retainedas an alias for backwards compatibility reasons.
The function
scipy.stats.linregressnow includes the standard error of theintercept in its return value.
The
_logpdf,_sf, and_isfmethods have been added toscipy.stats.nakagami;_sfand_isfmethods also added toscipy.stats.gumbel_rThe
sfmethod has been added toscipy.stats.levyandscipy.stats.levy_lfor improved precision.
scipy.stats.binned_statistic_ddperformance improvements for the followingcomputed statistics:
max,min,median, andstd.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.spatialchangesCalling
KDTree.querywithk=Noneto find all neighbours is deprecated.Use
KDTree.query_ball_pointinstead.distance.wminkowskiwas deprecated; usedistance.minkowskiand supplyweights with the
wkeyword instead.Backwards incompatible changes
scipychangesUsing
scipy.fftas a function aliasingnumpy.fft.fftwas removed afterbeing deprecated in SciPy
1.4.0. As a result, thescipy.fftsubmodulemust be explicitly imported now, in line with other SciPy subpackages.
scipy.signalchangesThe output of
decimate,lfilter_zi,lfiltic,sos2tf, andsosfilt_zihave been changed to matchnumpy.result_typeof their inputs.The window function
slepianwas removed. It had been deprecated since SciPy1.1.scipy.spatialchangescKDTree.querynow returns 64-bit rather than 32-bit integers on Windows,making behaviour consistent between platforms (PR gh-12673).
scipy.statschangesThe
frechet_landfrechet_rdistributions were removed. They weredeprecated since SciPy
1.0.Other changes
setup_requireswas removed fromsetup.py. This means that usersinvoking
python setup.py installwithout having numpy already installedwill now get an error, rather than having numpy installed for them via
easy_install. This install method was always fragile and problematic, usersare encouraged to use
pipwhen installing from source.scipy.optimize.dual_annealingaccept_rejectcalculationthat caused uphill jumps to be accepted less frequently.
scipy.stats.rv_continuous,scipy.stats.rv_discrete, andscipy.stats.rv_frozenhas been significantlyreduced (gh12550). Inheriting subclasses should note that
__setstate__nolonger calls
__init__upon unpickling.Authors
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.
v1.5.4Compare Source
SciPy 1.5.4 Release Notes
SciPy
1.5.4is a bug-fix release with no new featurescompared to
1.5.3. Importantly, wheels are now availablefor Python
3.9and a more complete fix has been applied forissues building with XCode
12.Authors
A total of 7 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.
v1.5.3Compare Source
SciPy 1.5.3 Release Notes
SciPy
1.5.3is a bug-fix release with no new featurescompared to
1.5.2. In particular, Linux ARM64 wheels are nowavailable and a compatibility issue with XCode 12 has
been fixed.
Authors
A total of 12 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.
v1.5.2Compare Source
SciPy 1.5.2 Release Notes
SciPy
1.5.2is a bug-fix release with no new featurescompared to
1.5.1.Authors
A total of 13 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.
v1.5.1Compare Source
SciPy 1.5.1 Release Notes
SciPy
1.5.1is a bug-fix release with no new featurescompared to
1.5.0. In particular, an issue where DLL loadingcan fail for SciPy wheels on Windows with Python
3.6has beenfixed.
Authors
A total of 7 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.
v1.5.0Compare Source
SciPy 1.5.0 Release Notes
SciPy
1.5.0is the culmination of 6 months of hard work. It containsmany 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 -Wdand check forDeprecationWarnings).Our development attention will now shift to bug-fix releases on the
1.5.x branch, and on adding new features on the master branch.
This release requires Python
3.6+and NumPy1.14.5or greater.For running on PyPy, PyPy3
6.0+and NumPy1.15.0are required.Highlights of this release
LAPACKroutines are now availablein
scipy.linalg.lapackbackends
Kolmogorov-Smirnov tests
New features
scipy.clusterimprovementsInitialization of
scipy.cluster.vq.kmeans2usingminit="++"had aquadratic complexity in the number of samples. It has been improved, resulting
in a much faster initialization with quasi-linear complexity.
scipy.cluster.hierarchy.dendrogramnow respects thematplotlibcolorpalette
scipy.fftimprovementsA new keyword-only argument
planis added to all FFT functions in thismodule. It is reserved for passing in a precomputed plan from libraries
providing a FFT backend (such as
PyFFTWandmkl-fft), and it iscurrently not used in SciPy.
scipy.integrateimprovementsscipy.interpolateimprovementsscipy.ioimprovementsscipy.io.wavfileerror messages are more explicit about what's wrong, andextraneous bytes at the ends of files are ignored instead of raising an error
when the data has successfully been read.
scipy.io.loadmatgained asimplify_cellsparameter, which if set toTruesimplifies the structure of the return value if the.matfilecontains cell arrays.
pathlib.Pathobjects are now supported inscipy.ioMatrix Market I/Ofunctions
scipy.linalgimprovementsscipy.linalg.eighhas been improved. Now variousLAPACKdrivers can beselected at will and also subsets of eigenvalues can be requested via
subset_by_valuekeyword. Another keywordsubset_by_indexis introduced.Keywords
turboandeigvalsare deprecated.Similarly, standard and generalized Hermitian eigenvalue
LAPACKroutines?<sy/he>evxare added and existing ones now have full_lworkcounterparts.
Wrappers for the following
LAPACKroutines have been added toscipy.linalg.lapack:?getc2: computes the LU factorization of a general matrix with completepivoting
?gesc2: solves a linear system given an LU factorization from?getc2?gejsv: computes the singular value decomposition of a general matrixwith higher accuracy calculation of tiny singular values and their
corresponding singular vectors
?geqrfp: computes the QR factorization of a general matrix withnon-negative elements on the diagonal of R
?gtsvx: solves a linear system with general tridiagonal matrix?gttrf: computes the LU factorization of a tridiagonal matrix?gttrs: solves a linear system given an LU factorization from?gttrf?ptsvx: solves a linear system with symmetric positive definitetridiagonal matrix
?pttrf: computes the LU factorization of a symmetric positive definitetridiagonal matrix
?pttrs: solves a linear system given an LU factorization from?pttrf?pteqr: computes the eigenvectors and eigenvalues of a positive definitetridiagonal matrix
?tbtrs: solves a linear system with a triangular banded matrix?csd: computes the Cosine Sine decomposition of an orthogonal/unitarymatrix
Generalized QR factorization routines (
?geqrf) now have full_lworkcounterparts.
scipy.linalg.cossinCosine Sine decomposition of unitary matrices has beenadded.
The function
scipy.linalg.khatri_rao, which computes the Khatri-Rao product,was added.
The new function
scipy.linalg.convolution_matrixconstructs the Toeplitzmatrix representing one-dimensional convolution.
scipy.ndimageimprovementsscipy.optimizeimprovementsThe finite difference numerical differentiation used in various
minimizemethods that use gradients has several new features:
only a 2-step finite difference was available.
absolute step size was available.
minimizemethod uses bounds the numerical differentiation strictlyobeys those limits.
which in some cases can reduce the number of function evaluations.
minimize'smethod= 'powell'now supports simple bound constraintsThere have been several improvements to
scipy.optimize.linprog:linprogbenchmark suite has been expanded considerably.linprog's dense pivot-based redundancy removal routine and sparsepresolve are faster
scikit-sparseis available, solving sparse problems withmethod='interior-point'is fasterThe caching of values when optimizing a function returning both value and
gradient together has been improved, avoiding repeated function evaluations
when using a
HessianApproximationsuch asBFGS.differential_evolutioncan now use the modernnp.random.Generatoraswell as the legacy
np.random.RandomStateas a seed.scipy.signalimprovementsA new optional argument
include_nyquistis added tofreqzfunctions inthis module. It is used for including the last frequency (Nyquist frequency).
scipy.signal.find_peaks_cwtnow accepts awindow_sizeparameter for thesize of the window used to calculate the noise floor.
scipy.sparseimprovementsOuter indexing is now faster when using a 2d column vector to select column
indices.
scipy.sparse.lil.tocsris fasterFixed/improved comparisons between pydata sparse arrays and sparse matrices
BSR format sparse multiplication performance has been improved.
scipy.sparse.linalg.LinearOperatorhas gained the newndimclassattribute
scipy.spatialimprovementsscipy.spatial.geometric_slerphas been added to enable geometricspherical linear interpolation on an n-sphere
scipy.spatial.SphericalVoronoinow supports calculation of region areas in 2Dand 3D cases
The tree building algorithm used by
cKDTreehas improved from quadraticworst case time complexity to loglinear. Benchmarks are also now available for
building and querying of balanced/unbalanced kd-trees.
scipy.specialimprovementsThe following functions now have Cython interfaces in
cython_special:scipy.special.erfinvscipy.special.erfcinvscipy.special.spherical_jnscipy.special.spherical_ynscipy.special.spherical_inscipy.special.spherical_knscipy.special.log_softmaxhas been added to calculate the logarithm of softmaxfunction. It provides better accuracy than
log(scipy.special.softmax(x))forinputs that make softmax saturate.
scipy.statsimprovementsThe function for generating random samples in
scipy.stats.dlaplacehas beenimproved. The new function is approximately twice as fast with a memory
footprint reduction between 25 % and 60 % (see gh-11069).
scipy.statsfunctions that accept a seed for reproducible calculations usingrandom number generation (e.g. random variates from distributions) can now use
the modern
np.random.Generatoras well as the legacynp.random.RandomStateas a seed.The
axisparameter was added toscipy.stats.rankdata. This allows slicesof an array along the given axis to be ranked independently.
The
axisparameter was added toscipy.stats.f_oneway, allowing it tocompute multiple one-way ANOVA tests for data stored in n-dimensional
arrays. The performance of
f_onewaywas also improved for some cases.The PDF and CDF methods for
stats.geninvgaussare now significantly fasteras the numerical integration to calculate the CDF uses a Cython based
LowLevelCallable.Moments of the normal distribution (
scipy.stats.norm) are now calculated usinganalytical formulas instead of numerical integration for greater speed and
accuracy
Moments and entropy trapezoidal distribution (
scipy.stats.trapz) are nowcalculated using analytical formulas instead of numerical integration for
greater speed and accuracy
Methods of the truncated normal distribution (
scipy.stats.truncnorm),especially
_rvs, are significantly faster after a complete rewrite.The
fitmethod of the Laplace distribution,scipy.stats.laplace, now usesthe analytical formulas for the maximum likelihood estimates of the parameters.
Generation of random variates is now thread safe for all SciPy distributions.
3rd-party distributions may need to modify the signature of the
_rvs()method to conform to
_rvs(self, ..., size=None, random_state=None). (Aone-time VisibleDeprecationWarning is emitted when using non-conformant
distributions.)
The Kolmogorov-Smirnov two-sided test statistic distribution
(
scipy.stats.kstwo) was added. Calculates the distribution of the K-Stwo-sided statistic
D_nfor a sample of size n, using a mixture of exactand asymptotic algorithms.
The new function
median_abs_deviationreplaces the deprecatedmedian_absolute_deviation.The
wilcoxonfunction now computes the p-value for Wilcoxon's signed ranktest using the exact distribution for inputs up to length 25. The function has
a new
modeparameter to specify how the p-value is to be computed. Thedefault is
"auto", which uses the exact distribution for inputs up to length25 and the normal approximation for larger inputs.
Added a new Cython-based implementation to evaluate guassian kernel estimates,
which should improve the performance of
gaussian_kdeThe
winsorizefunction now has anan_policyargument for refinedhandling of
naninput values.The
binned_statistic_ddfunction withstatistic="std"performance wasimproved by ~4x.
scipy.stats.kstest(rvs, cdf,...)now handles both one-sample andtwo-sample testing. The one-sample variation uses
scipy.stats.ksone(or
scipy.stats.kstwowith back off toscipy.stats.kstwobign) to calculatethe p-value. The two-sample variation, invoked if
cdfis array_like, usesan algorithm described by Hodges to compute the probability directly, only
backing off to
scipy.stats.kstwoin case of overflow. The result in bothcases is more accurate p-values, especially for two-sample testing with
smaller (or quite different) sizes.
scipy.stats.maxwellperformance improvements include a 20 % speed up for`fit()
and 5 % forpdf()``scipy.stats.shapiroandscipy.stats.jarque_beranow return a named tuplefor greater consistency with other
statsfunctionsDeprecated features
scipydeprecationsscipy.specialchangesThe
bdtr,bdtrc, andbdtrifunctions are deprecating non-negativenon-integral
narguments.scipy.statschangesThe function
median_absolute_deviationis deprecated. Usemedian_abs_deviationinstead.The use of the string
"raw"with thescaleparameter ofiqrisdeprecated. Use
scale=1instead.Backwards incompatible changes
scipy.interpolatechangesscipy.linalgchangesThe output signatures of
?syevr,?heevrhave been changed fromw, v, infotow, v, m, isuppz, infoThe order of output arguments
w,vof<sy/he>{gv, gvd, gvx}isswapped.
scipy.signalchangesThe output length of
scipy.signal.upfirdnhas been corrected, resultingoutputs may now be shorter for some combinations of up/down ratios and input
signal and filter lengths.
scipy.signal.resamplenow supports adomainkeyword argument forspecification of time or frequency domain input.
scipy.statschangesOther changes
Improved support for leveraging 64-bit integer size from linear algebra backends
in several parts of the SciPy codebase.
Shims designed to ensure the compatibility of SciPy with Python 2.7 have now
been removed.
Many warnings due to unused imports and unused assignments have been addressed.
Many usage examples were added to function docstrings, and many input
validations and intuitive exception messages have been added throughout the
codebase.
Early stage adoption of type annotations in a few parts of the codebase
Authors
A total of 129 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by WhiteSource Renovate. View repository job log here.