Update dependency scipy to ~=1.12.0 #45
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/scipy-1.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
~=1.11.0->~=1.12.0Release Notes
scipy/scipy (scipy)
v1.12.0: SciPy 1.12.0Compare Source
SciPy 1.12.0 Release Notes
SciPy
1.12.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.12.x branch, and on adding new features on the main branch.
This release requires Python
3.9+and NumPy1.22.4or greater.For running on PyPy, PyPy3
6.0+is required.Highlights of this release
scipy.special, and to all ofscipy.fftandscipy.cluster. There arelikely to be bugs and early feedback for usage with CuPy arrays, PyTorch
tensors, and other array API compatible libraries is appreciated. Use the
SCIPY_ARRAY_APIenvironment variable for testing.ShortTimeFFT, provides a more versatile implementation of theshort-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-)
spectrogram. It utilizes an improved algorithm for calculating the ISTFT.
now additionally support sparse arrays, further facilitating the migration
from sparse matrices.
scipy.statsAPI now has improved support for handlingNaNvalues, masked arrays, and more fine-grained shape-handling. Theaccuracy and performance of a number of
statsmethods have been improved,and a number of new statistical tests and distributions have been added.
New features
scipy.clusterimprovementsCuPy arrays and array API compatible array libraries are now accepted
(GPU support is limited to functions with pure Python implementations).
CPU arrays which can be converted to and from NumPy are supported
module-wide and returned arrays will match the input type.
This behaviour is enabled by setting the
SCIPY_ARRAY_APIenvironmentvariable before importing
scipy. This experimental support is stillunder development and likely to contain bugs - testing is very welcome.
scipy.fftimprovementspart of the
fftarray API standard extension module, as well as theFast Hankel Transforms and the basic FFTs which are not in the extension
module, now accept PyTorch tensors, CuPy arrays and array API compatible
array libraries. CPU arrays which can be converted to and from NumPy arrays
are supported module-wide and returned arrays will match the input type.
This behaviour is enabled by setting the
SCIPY_ARRAY_APIenvironmentvariable before importing
scipy. This experimental support is still underdevelopment and likely to contain bugs - testing is very welcome.
scipy.integrateimprovementsscipy.integrate.cumulative_simpsonfor cumulative quadraturefrom sampled data using Simpson's 1/3 rule.
scipy.interpolateimprovementsNdBSplinerepresents tensor-product splines in N dimensions.This class only knows how to evaluate a tensor product given coefficients
and knot vectors. This way it generalizes
BSplinefor 1D data to N-D, andparallels
NdPPoly(which represents N-D tensor product polynomials).Evaluations exploit the localized nature of b-splines.
NearestNDInterpolator.__call__accepts**query_options, which arepassed through to the
KDTree.querycall to find nearest neighbors. Thisallows, for instance, to limit the neighbor search distance and parallelize
the query using the
workerskeyword.BarycentricInterpolatornow allows computing the derivatives.CloughTocher2DInterpolatorinstance, while also saving the barycentriccoordinates of interpolation points.
scipy.linalgimprovementsdtgsylandstgsyl.scipy.optimizeimprovementsscipy.optimize.isotonic_regressionhas been added to allow nonparametric isotonicregression.
scipy.optimize.nnlsis rewritten in Python and now implements the so-calledfnnls or fast nnls, making it more efficient for high-dimensional problems.
scipy.optimize.rootandscipy.optimize.root_scalarnow reports the method used.
callbackmethod ofscipy.optimize.differential_evolutioncan now bepassed more detailed information via the
intermediate_resultskeywordparameter. Also, the evolution
strategynow accepts a callable foradditional customization. The performance of
differential_evolutionhasalso been improved.
scipy.optimize.minimizemethodNewton-CGnow supports functions thatreturn sparse Hessian matrices/arrays for the
hessparameter and is slightlymore efficient.
scipy.optimize.minimizemethodBFGSnow accepts an initial estimate for theinverse of the Hessian, which allows for more efficient workflows in some
circumstances. The new parameter is
hess_inv0.scipy.optimize.minimizemethodsCG,Newton-CG, andBFGSnow acceptparameters
c1andc2, allowing specification of the Armijo and curvature ruleparameters, respectively.
scipy.optimize.curve_fitperformance has improved due to more efficient memoizationof the callable function.
scipy.signalimprovementsfreqz,freqz_zpk, andgroup_delayare now more accuratewhen
fshas a default value.ShortTimeFFTprovides a more versatile implementation of theshort-time Fourier transform (STFT), its inverse (ISTFT) as well as the (cross-)
spectrogram. It utilizes an improved algorithm for calculating the ISTFT based on
dual windows and provides more fine-grained control of the parametrization especially
in regard to scaling and phase-shift. Functionality was implemented to ease
working with signal and STFT chunks. A section has been added to the "SciPy User Guide"
providing algorithmic details. The functions
stft,istftandspectrogramhave been marked as legacy.
scipy.sparseimprovementssparse.linalgiterative solverssparse.linalg.cg,sparse.linalg.cgs,sparse.linalg.bicg,sparse.linalg.bicgstab,sparse.linalg.gmres, andsparse.linalg.qmrare rewritten in Python.6.0.1, along with a few additionalfixes.
eye_array,random_array,block_array, andidentity.kronandkronsumhave been adjusted to additionally support operation on sparse arrays.
axes=(1, 0), to mirrorthe
.Tmethod.LaplacianNdnow allows selection of the largest subset of eigenvalues,and additionally now supports retrieval of the corresponding eigenvectors.
The performance of
LaplacianNdhas also been improved.dok_matrixanddok_arrayhas been improved,and their inheritance behavior should be more robust.
hstack,vstack, andblock_diagnow work with sparse arrays, andpreserve the input sparse type.
scipy.sparse.linalg.matrix_power, has been added, allowingfor exponentiation of sparse arrays.
scipy.spatialimprovementsspatial.transform.Rotation:__pow__to raise a rotation to integer or fractional power andapprox_equalto check if two rotations are approximately equal.Rotation.align_vectorswas extended to solve a constrainedalignment problem where two vectors are required to be aligned precisely.
Also when given a single pair of vectors, the algorithm now returns the
rotation with minimal magnitude, which can be considered as a minor
backward incompatible change.
spatial.transform.Rotationcalled Davenportangles is available through
from_davenportandas_davenportmethods.distance.hamminganddistance.correlation.SphericalVoronoisort_vertices_of_regionsand two dimensional area calculations.
scipy.specialimprovementsscipy.special.stirling2for computation of Stirling numbers of thesecond kind. Both exact calculation and an asymptotic approximation
(the default) are supported via
exact=Trueandexact=False(thedefault) respectively.
scipy.special.betainccfor computation of the complementaryincomplete Beta function and
scipy.special.betainccinvfor computation ofits inverse.
scipy.special.betaincandscipy.special.betaincinv.scipy.special.log_ndtr,scipy.special.ndtr,scipy.special.ndtri,scipy.special.erf,scipy.special.erfc,scipy.special.i0,scipy.special.i0e,scipy.special.i1,scipy.special.i1e,scipy.special.gammaln,scipy.special.gammainc,scipy.special.gammaincc,scipy.special.logit, andscipy.special.expitnow accept PyTorch tensorsand CuPy arrays. These features are still under development and likely to
contain bugs, so they are disabled by default; enable them by setting a
SCIPY_ARRAY_APIenvironment variable to1before importingscipy.Testing is appreciated!
scipy.statsimprovementsscipy.stats.quantile_test, a nonparametric test of whether ahypothesized value is the quantile associated with a specified probability.
The
confidence_intervalmethod of the result object gives a confidenceinterval of the quantile.
scipy.stats.sampling.FastGeneratorInversionprovides a convenientinterface to fast random sampling via numerical inversion of distribution
CDFs.
scipy.stats.geometric_discrepancyadds geometric/topological discrepancymetrics for random samples.
scipy.stats.multivariate_normalnow has afitmethod for fittingdistribution parameters to data via maximum likelihood estimation.
scipy.stats.bws_testperforms the Baumgartner-Weiss-Schindler test ofwhether two-samples were drawn from the same distribution.
scipy.stats.jf_skew_timplements the Jones and Faddy skew-t distribution.scipy.stats.anderson_ksampnow supports a permutation version of the testusing the
methodparameter.fitmethods ofscipy.stats.halfcauchy,scipy.stats.halflogistic, andscipy.stats.halfnormare faster and more accurate.scipy.stats.betaentropyaccuracy has been improved for extreme values ofdistribution parameters.
sfand/orisfmethods have been improved forseveral distributions:
scipy.stats.burr,scipy.stats.hypsecant,scipy.stats.kappa3,scipy.stats.loglaplace,scipy.stats.lognorm,scipy.stats.lomax,scipy.stats.pearson3,scipy.stats.rdist, andscipy.stats.pareto.axis,nan_policy, andkeep_dims:scipy.stats.entropy,scipy.stats.differential_entropy,scipy.stats.variation,scipy.stats.ansari,scipy.stats.bartlett,scipy.stats.levene,scipy.stats.fligner,scipy.stats.circmean,scipy.stats.circvar,scipy.stats.circstd,scipy.stats.tmean,scipy.stats.tvar,scipy.stats.tstd,scipy.stats.tmin,scipy.stats.tmax,and
scipy.stats.tsem.logpdfandfitmethods ofscipy.stats.skewnormhave been improved.scipy.stats.betanbinom.scipy.stats.invwishartrvsandlogpdf.scipy.stats.boxcox_normmaxwithmethod='mle'has been eliminated, and the returned value oflmbdaisconstrained such that the transformed data will not overflow.
scipy.stats.nakagamistatsis more accurate and reliable.scipy.norminvgauss.pdfhas been eliminated.scipy.stats.circmean,scipy.stats.circvar,scipy.stats.circstd, andscipy.stats.entropy.scipy.stats.dirichlethas gained a new covariance (cov) method.entropymethod ofscipy.stats.multivariate_tfor largedegrees of freedom.
scipy.stats.loggammahas an improvedentropymethod.Deprecated features
Error messages have been made clearer for objects that don't exist in the
public namespace and warnings sharpened for private attributes that are not
supposed to be imported at all.
scipy.signal.cmplx_sorthas been deprecated and will be removed inSciPy 1.15. A replacement you can use is provided in the deprecation message.
Values the the argument
initialofscipy.integrate.cumulative_trapezoidother than
0andNoneare now deprecated.scipy.stats.rvs_ratio_uniformsis deprecated in favour ofscipy.stats.sampling.RatioUniformsscipy.integrate.quadratureandscipy.integrate.romberghave beendeprecated due to accuracy issues and interface shortcomings. They will
be removed in SciPy 1.15. Please use
scipy.integrate.quadinstead.Coinciding with upcoming changes to function signatures (e.g. removal of a
deprecated keyword), we are deprecating positional use of keyword arguments
for the affected functions, which will raise an error starting with
SciPy 1.14. In some cases, this has delayed the originally announced
removal date, to give time to respond to the second part of the deprecation.
Affected functions are:
linalg.{eigh, eigvalsh, pinv}integrate.simpsonsignal.{firls, firwin, firwin2, remez}sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}special.combstats.kendalltauAll wavelet functions have been deprecated, as PyWavelets provides suitable
implementations; affected functions are:
signal.{daub, qmf, cascade, morlet, morlet2, ricker, cwt}scipy.integrate.trapz,scipy.integrate.cumtrapz, andscipy.integrate.simpshavebeen deprecated in favour of
scipy.integrate.trapezoid,scipy.integrate.cumulative_trapezoid,and
scipy.integrate.simpsonrespectively and will be removed in SciPy 1.14.The
tolargument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk,gmres,lgmres,minres,qmr,tfqmr}is now deprecated in favour of
rtoland will be removed in SciPy 1.14.Furthermore, the default value of
atolfor these functions is dueto change to
0.0in SciPy 1.14.Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
centeredkeyword ofscipy.stats.qmc.LatinHypercubehas been removed.Use
scrambled=Falseinstead ofcentered=True.scipy.stats.binom_testhas been removed in favour ofscipy.stats.binomtest.scipy.stats.iqr, the use ofscale='raw'has been removed in favourof
scale=1.Backwards incompatible changes
Other changes
show_config.Authors
A total of 163 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: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.