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.9.3
->==1.14.1
Release Notes
scipy/scipy (scipy)
v1.14.1
: SciPy 1.14.1Compare Source
SciPy 1.14.1 Release Notes
SciPy
1.14.1
adds support for Python3.13
, including binarywheels on PyPI. Apart from that, it is a bug-fix release with
no new features compared to
1.14.0
.Authors
A total of 17 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.14.0
: SciPy 1.14.0Compare Source
SciPy 1.14.0 Release Notes
SciPy
1.14.0
is the culmination of 3 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 -Wd
and check forDeprecationWarning
s).Our development attention will now shift to bug-fix releases on the
1.14.x branch, and on adding new features on the main branch.
This release requires Python
3.10+
and NumPy1.23.5
or greater.For running on PyPy, PyPy3
6.0+
is required.Highlights of this release
has wheels built against Accelerate for macOS >=14 resulting in significant
performance improvements for many linear algebra operations.
cobyqa
, has been added toscipy.optimize.minimize
- thisis an interface for COBYQA (Constrained Optimization BY Quadratic
Approximations), a derivative-free optimization solver, designed to
supersede COBYLA, developed by the Department of Applied Mathematics, The
Hong Kong Polytechnic University.
scipy.sparse.linalg.spsolve_triangular
is now more than an order ofmagnitude faster in many cases.
New features
scipy.fft
improvementsscipy.fft.prev_fast_len
, has been added. This functionfinds the largest composite of FFT radices that is less than the target
length. It is useful for discarding a minimal number of samples before FFT.
scipy.io
improvementswavfile
now supports reading and writing ofwav
files in the RF64format, allowing files greater than 4 GB in size to be handled.
scipy.constants
improvementsscipy.interpolate
improvementsscipy.interpolate.Akima1DInterpolator
now supports extrapolation via theextrapolate
argument.scipy.optimize
improvementsscipy.optimize.HessianUpdateStrategy
now also accepts square arrays forinit_scale
.cobyqa
, has been added toscipy.optimize.minimize
- thisis an interface for COBYQA (Constrained Optimization BY Quadratic
Approximations), a derivative-free optimization solver, designed to
supersede COBYLA, developed by the Department of Applied Mathematics, The
Hong Kong Polytechnic University.
scipy.optimize.differential_evolution
.scipy.optimize.approx_fprime
now has linear space complexity.scipy.signal
improvementsscipy.signal.minimum_phase
has a new argumenthalf
, allowing theprovision of a filter of the same length as the linear-phase FIR filter
coefficients and with the same magnitude spectrum.
scipy.sparse
improvementsThese are all the formats we currently intend to support 1D shapes.
Other sparse array formats raise an exception for 1D input.
Results are still COO format sparse arrays for min/nanmin and
dense
np.ndarray
for argmin.csr_array
orcsc_array
yields 1D (CSC) arrays.repr
andstr
output.dia_array
by ascalar, which avoids a potentially costly conversion to CSR format.
scipy.sparse.csgraph.yen
has been added, allowing usage of Yen's K-ShortestPaths algorithm on a directed on undirected graph.
scipy.sparse.linalg.spsolve_triangular
is now more than an order ofmagnitude faster in many cases.
scipy.spatial
improvementsRotation
supports an alternative "scalar-first" convention of quaternioncomponent ordering. It is available via the keyword argument
scalar_first
of
from_quat
andas_quat
methods.Rotation
objects.scipy.special
improvementsscipy.special.log_wright_bessel
, for calculation of the logarithm ofWright's Bessel function.
scipy.special.hyp2f1
calculations has improvedsubstantially.
boxcox
,inv_boxcox
,boxcox1p
, andinv_boxcox1p
by preventing premature overflow.scipy.stats
improvementsscipy.stats.power
can be used for simulating the powerof a hypothesis test with respect to a specified alternative.
scipy.stats.irwinhall
.scipy.stats.mannwhitneyu
are much fasterand use less memory.
scipy.stats.pearsonr
now accepts n-D arrays and computes the statisticalong a specified
axis
.scipy.stats.kstat
,scipy.stats.kstatvar
, andscipy.stats.bartlett
are faster at performing calculations along an axis of a large n-D array.
Array API Standard Support
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable
SCIPY_ARRAY_API=1
andproviding PyTorch, JAX, or CuPy arrays as array arguments.
As of 1.14.0, there is support for
scipy.cluster
scipy.fft
scipy.constants
scipy.special
: (select functions)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
scipy.special.expit
scipy.special.entr
scipy.special.rel_entr
scipy.special.xlogy
scipy.special.chdtrc
scipy.stats
: (select functions)scipy.stats.describe
scipy.stats.moment
scipy.stats.skew
scipy.stats.kurtosis
scipy.stats.kstat
scipy.stats.kstatvar
scipy.stats.circmean
scipy.stats.circvar
scipy.stats.circstd
scipy.stats.entropy
scipy.stats.variation
scipy.stats.sem
scipy.stats.ttest_1samp
scipy.stats.pearsonr
scipy.stats.chisquare
scipy.stats.skewtest
scipy.stats.kurtosistest
scipy.stats.normaltest
scipy.stats.jarque_bera
scipy.stats.bartlett
scipy.stats.power_divergence
scipy.stats.monte_carlo_test
Deprecated features
scipy.stats.gstd
,scipy.stats.chisquare
, andscipy.stats.power_divergence
have deprecated support for masked arrayinput.
scipy.stats.linregress
has deprecated support for specifying both samplesin one argument;
x
andy
are to be provided as separate arguments.conjtransp
method forscipy.sparse.dok_array
andscipy.sparse.dok_matrix
has been deprecated and will be removed in SciPy1.16.0.
quadrature="trapz"
inscipy.integrate.quad_vec
has beendeprecated in favour of
quadrature="trapezoid"
and will be removed inSciPy 1.16.0.
scipy.special.{comb,perm}
have deprecated support for use ofexact=True
inconjunction with non-integral
N
and/ork
.Backwards incompatible changes
scipy.stats
functions now produce a standardized warning message whenan input sample is too small (e.g. zero size). Previously, these functions
may have raised an error, emitted one or more less informative warnings, or
emitted no warnings. In most cases, returned results are unchanged; in almost
all cases the correct result is
NaN
.Expired deprecations
There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
Several previously deprecated methods for sparse arrays were removed:
asfptype
,getrow
,getcol
,get_shape
,getmaxprint
,set_shape
,getnnz
, andgetformat
. Additionally, the.A
and.H
attributes were removed.scipy.integrate.{simps,trapz,cumtrapz}
have been removed in favour ofsimpson
,trapezoid
, andcumulative_trapezoid
.The
tol
argument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk, mres,lgmres,minres,qmr,tfqmr}
has been removed in favour ofrtol
.Furthermore, the default value of
atol
for these functions has changedto
0.0
.The
restrt
argument ofscipy.sparse.linalg.gmres
has been removed infavour of
restart
.The
initial_lexsort
argument ofscipy.stats.kendalltau
has beenremoved.
The
cond
andrcond
arguments ofscipy.linalg.pinv
have beenremoved.
The
even
argument ofscipy.integrate.simpson
has been removed.The
turbo
andeigvals
arguments fromscipy.linalg.{eigh,eigvalsh}
have been removed.
The
legacy
argument ofscipy.special.comb
has been removed.The
hz
/nyq
argument ofsignal.{firls, firwin, firwin2, remez}
hasbeen removed.
Objects that weren't part of the public interface but were accessible through
deprecated submodules have been removed.
float128
,float96
, and object arrays now raise an error inscipy.signal.medfilt
andscipy.signal.order_filter
.scipy.interpolate.interp2d
has been replaced by an empty stub (to beremoved completely in the future).
Coinciding with changes to function signatures (e.g. removal of a deprecated
keyword), we had deprecated positional use of keyword arguments for the
affected functions, which will now raise an error. Affected functions are:
sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}
stats.kendalltau
linalg.pinv
integrate.simpson
linalg.{eigh,eigvalsh}
special.comb
signal.{firls, firwin, firwin2, remez}
Other changes
standard remains C++17.
This results in significant performance improvements for linear algebra
operations, as well as smaller binary wheels.
to run the cross interpreter.
parts of SciPy.
Authors
A total of 85 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.13.1
: SciPy 1.13.1Compare Source
SciPy 1.13.1 Release Notes
SciPy
1.13.1
is a bug-fix release with no new featurescompared to
1.13.0
. The version of OpenBLAS shipped withthe PyPI binaries has been increased to
0.3.27
.Authors
A total of 19 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.13.0
: SciPy 1.13.0Compare Source
SciPy 1.13.0 Release Notes
SciPy
1.13.0
is the culmination of 3 months of hard work. Thisout-of-band release aims to support NumPy
2.0.0
, and is backwardscompatible to NumPy
1.22.4
. The version of OpenBLAS used to buildthe PyPI wheels has been increased to
0.3.26.dev
.This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
2.0.0
.to run the examples locally on embedded Jupyterlite notebooks in their
browser.
scipy.stats
functions have gained support for additionalaxis
,nan_policy
, andkeepdims
arguments.scipy.stats
alsohas several performance and accuracy improvements.
New features
scipy.integrate
improvementsterminal
attribute ofscipy.integrate.solve_ivp
events
callables now additionally accepts integer values to specify a number
of occurrences required for termination, rather than the previous restriction
of only accepting a
bool
value to terminate on the first registeredevent.
scipy.io
improvementsscipy.io.wavfile.write
has improveddtype
input validation.scipy.interpolate
improvementsinterpolate.Akima1DInterpolator
, available via the newmethod
argument.
BSpline.insert_knot
inserts a knot into aBSpline
instance.This routine is similar to the module-level
scipy.interpolate.insert
function, and works with the BSpline objects instead of
tck
tuples.RegularGridInterpolator
gained the functionality to compute derivativesin place. For instance,
RegularGridInterolator((x, y), values, method="cubic")(xi, nu=(1, 1))
evaluates the mixed second derivative,:math:
\partial^2 / \partial x \partial y
atxi
.RegularGridInterpolator
have been changed: evaluations should besignificantly faster, while construction might be slower. If you experience
issues with construction times, you may need to experiment with optional
keyword arguments
solver
andsolver_args
. Previous behavior (fastconstruction, slow evaluations) can be obtained via
"*_legacy"
methods:method="cubic_legacy"
is exactly equivalent tomethod="cubic"
inprevious releases. See
gh-19633
for details.scipy.signal
improvementssampling frequency (
fs
).scipy.sparse
improvementscoo_array
now supports 1D shapes, and has additional 1D support formin
,max
,argmin
, andargmax
. The DOK format now haspreliminary 1D support as well, though only supports simple integer indices
at the time of writing.
pydata/sparse
array inputs toscipy.sparse.csgraph
.dok_array
anddok_matrix
now have proper implementations offromkeys
.csr
andcsc
formats now have improvedsetdiag
performance.scipy.spatial
improvementsvoronoi_plot_2d
now draws Voronoi edges to infinity more clearlywhen the aspect ratio is skewed.
scipy.special
improvementsAMOS
,specfun
, andcdflib
librariesthat the majority of special functions depend on, is ported to Cython/C.
factorialk
now also supports faster, approximatecalculation using
exact=False
.scipy.stats
improvementsscipy.stats.rankdata
andscipy.stats.wilcoxon
have been vectorized,improving their performance and the performance of hypothesis tests that
depend on them.
stats.mannwhitneyu
should now be faster due to a vectorized statisticcalculation, improved caching, improved exploitation of symmetry, and a
memory reduction.
PermutationMethod
support was also added.scipy.stats.mood
now hasnan_policy
andkeepdims
support.scipy.stats.brunnermunzel
now hasaxis
andkeepdims
support.scipy.stats.friedmanchisquare
,scipy.stats.shapiro
,scipy.stats.normaltest
,scipy.stats.skewtest
,scipy.stats.kurtosistest
,scipy.stats.f_oneway
,scipy.stats.alexandergovern
,scipy.stats.combine_pvalues
, andscipy.stats.kstest
have gainedaxis
,nan_policy
andkeepdims
support.scipy.stats.boxcox_normmax
has gained aymax
parameter to allow userspecification of the maximum value of the transformed data.
scipy.stats.vonmises
pdf
method has been extended to supportkappa=0
. Thefit
method is also more performant due to the use ofnon-trivial bounds to solve for
kappa
.moment
calculations forscipy.stats.powerlaw
are now moreaccurate.
fit
methods ofscipy.stats.gamma
(withmethod='mm'
) andscipy.stats.loglaplace
are faster and more reliable.scipy.stats.goodness_of_fit
now supports the use of a customstatistic
provided by the user.
scipy.stats.wilcoxon
now supportsPermutationMethod
, enablingcalculation of accurate p-values in the presence of ties and zeros.
scipy.stats.monte_carlo_test
now has improved robustness in the face ofnumerical noise.
scipy.stats.wasserstein_distance_nd
was introduced to compute theWasserstein-1 distance between two N-D discrete distributions.
Deprecated features
PchipInterpolator
andAkima1DInterpolator
havebeen deprecated and will raise an error in SciPy 1.15.0. If you are trying
to use the real components of the passed array, use
np.real
ony
.n
together withexact=True
are deprecated forscipy.special.factorial
.Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
scipy.signal.{lsim2,impulse2,step2}
have been removed in favour ofscipy.signal.{lsim,impulse,step}
.scipy.signal
namespace andinstead should be accessed through either
scipy.signal.windows
orscipy.signal.get_window
.scipy.sparse
no longer supports multi-Ellipsis indexingscipy.signal.{bspline,quadratic,cubic}
have been removed in favour of alternativesin
scipy.interpolate
.scipy.linalg.tri{,u,l}
have been removed in favour ofnumpy.tri{,u,l}
.scipy.special.factorial
withexact=True
now raise anerror.
namespace, such as
numpy.histogram
exposed byscipy.histogram
, havebeen removed from SciPy's main namespace. Please use the functions directly
from
numpy
. This was originally performed for SciPy 1.12.0 however was missed fromthe release notes so is included here for completeness.
Backwards incompatible changes
Other changes
scipy.stats.moment
has been renamed toorder
while maintaining backward compatibility.
Authors
A total of 96 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.12.0
: SciPy 1.12.0Compare Source
SciPy 1.12.0 Release Notes
SciPy
1.12.0
is the culmination of6
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 -Wd
and check forDeprecationWarning
s).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.4
or greater.For running on PyPy, PyPy3
6.0+
is required.Highlights of this release
scipy.special
, and to all ofscipy.fft
andscipy.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_API
environment 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.stats
API now has improved support for handlingNaN
values, masked arrays, and more fine-grained shape-handling. Theaccuracy and performance of a number of
stats
methods have been improved,and a number of new statistical tests and distributions have been added.
New features
scipy.cluster
improvementsCuPy 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_API
environmentvariable before importing
scipy
. This experimental support is stillunder development and likely to contain bugs - testing is very welcome.
scipy.fft
improvementspart of the
fft
array 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_API
environmentvariable before importing
scipy
. This experimental support is still underdevelopment and likely to contain bugs - testing is very welcome.
scipy.integrate
improvementsscipy.integrate.cumulative_simpson
for cumulative quadraturefrom sampled data using Simpson's 1/3 rule.
scipy.interpolate
improvementsNdBSpline
represents 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
BSpline
for 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.query
call to find nearest neighbors. Thisallows, for instance, to limit the neighbor search distance and parallelize
the query using the
workers
keyword.BarycentricInterpolator
now allows computing the derivatives.CloughTocher2DInterpolator
instance, while also saving the barycentriccoordinates of interpolation points.
scipy.linalg
improvementsdtgsyl
andstgsyl
.scipy.optimize
improvementsscipy.optimize.isotonic_regression
has been added to allow nonparametric isotonicregression.
scipy.optimize.nnls
is rewritten in Python and now implements the so-calledfnnls or fast nnls, making it more efficient for high-dimensional problems.
scipy.optimize.root
andscipy.optimize.root_scalar
now reports the method used.
callback
method ofscipy.optimize.differential_evolution
can now bepassed more detailed information via the
intermediate_results
keywordparameter. Also, the evolution
strategy
now accepts a callable foradditional customization. The performance of
differential_evolution
hasalso been improved.
scipy.optimize.minimize
methodNewton-CG
now supports functions thatreturn sparse Hessian matrices/arrays for the
hess
parameter and is slightlymore efficient.
scipy.optimize.minimize
methodBFGS
now 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.minimize
methodsCG
,Newton-CG
, andBFGS
now acceptparameters
c1
andc2
, allowing specification of the Armijo and curvature ruleparameters, respectively.
scipy.optimize.curve_fit
performance has improved due to more efficient memoizationof the callable function.
scipy.signal
improvementsfreqz
,freqz_zpk
, andgroup_delay
are now more accuratewhen
fs
has a default value.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 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
,istft
andspectrogram
have been marked as legacy.
scipy.sparse
improvementssparse.linalg
iterative solverssparse.linalg.cg
,sparse.linalg.cgs
,sparse.linalg.bicg
,sparse.linalg.bicgstab
,sparse.linalg.gmres
, andsparse.linalg.qmr
are rewritten in Python.6.0.1
, along with a few additionalfixes.
eye_array
,random_array
,block_array
, andidentity
.kron
andkronsum
have been adjusted to additionally support operation on sparse arrays.
axes=(1, 0)
, to mirrorthe
.T
method.LaplacianNd
now allows selection of the largest subset of eigenvalues,and additionally now supports retrieval of the corresponding eigenvectors.
The performance of
LaplacianNd
has also been improved.dok_matrix
anddok_array
has been improved,and their inheritance behavior should be more robust.
hstack
,vstack
, andblock_diag
now work with sparse arrays, andpreserve the input sparse type.
scipy.sparse.linalg.matrix_power
, has been added, allowingfor exponentiation of sparse arrays.
scipy.spatial
improvementsspatial.transform.Rotation
:__pow__
to raise a rotation to integer or fractional power andapprox_equal
to check if two rotations are approximately equal.Rotation.align_vectors
was 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.Rotation
called Davenportangles is available through
from_davenport
andas_davenport
methods.distance.hamming
anddistance.correlation
.SphericalVoronoi
sort_vertices_of_regions
and two dimensional area calculations.
scipy.special
improvementsscipy.special.stirling2
for computation of Stirling numbers of thesecond kind. Both exact calculation and an asymptotic approximation
(the default) are supported via
exact=True
andexact=False
(thedefault) respectively.
scipy.special.betaincc
for computation of the complementaryincomplete Beta function and
scipy.special.betainccinv
for computation ofits inverse.
scipy.special.betainc
andscipy.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.expit
now 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_API
environment variable to1
before importingscipy
.Testing is appreciated!
scipy.stats
improvementsscipy.stats.quantile_test
, a nonparametric test of whether ahypothesized value is the quantile associated with a specified probability.
The
confidence_interval
method of the result object gives a confidenceinterval of the quantile.
scipy.stats.sampling.FastGeneratorInversion
provides a convenientinterface to fast random sampling via numerical inversion of distribution
CDFs.
scipy.stats.geometric_discrepancy
adds geometric/topological discrepancymetrics for random samples.
scipy.stats.multivariate_normal
now has afit
method for fittingdistribution parameters to data via maximum likelihood estimation.
scipy.stats.bws_test
performs the Baumgartner-Weiss-Schindler test ofwhether two-samples were drawn from the same distribution.
scipy.stats.jf_skew_t
implements the Jones and Faddy skew-t distribution.scipy.stats.anderson_ksamp
now supports a permutation version of the testusing the
method
parameter.fit
methods ofscipy.stats.halfcauchy
,scipy.stats.halflogistic
, andscipy.stats.halfnorm
are faster and more accurate.scipy.stats.beta
entropy
accuracy has been improved for extreme values ofdistribution parameters.
sf
and/orisf
methods 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
.logpdf
andfit
methods ofscipy.stats.skewnorm
have been improved.scipy.stats.betanbinom
.scipy.stats.invwishart
rvs
andlogpdf
.scipy.stats.boxcox_normmax
withmethod='mle'
has been eliminated, and the returned value oflmbda
isconstrained such that the transformed data will not overflow.
scipy.stats.nakagami
stats
is more accurate and reliable.scipy.norminvgauss.pdf
has been eliminated.scipy.stats.circmean
,scipy.stats.circvar
,scipy.stats.circstd
, andscipy.stats.entropy
.scipy.stats.dirichlet
has gained a new covariance (cov
) method.entropy
method ofscipy.stats.multivariate_t
for largedegrees of freedom.
scipy.stats.loggamma
has an improvedentropy
method.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_sort
has been deprecated and will be removed inSciPy 1.15. A replacement you can use is provided in the deprecation message.
Values the the argument
initial
ofscipy.integrate.cumulative_trapezoid
other than
0
andNone
are now deprecated.scipy.stats.rvs_ratio_uniforms
is deprecated in favour ofscipy.stats.sampling.RatioUniforms
scipy.integrate.quadrature
andscipy.integrate.romberg
have beendeprecated due to accuracy issues and interface shortcomings. They will
be removed in SciPy 1.15. Please use
scipy.integrate.quad
instead.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.simpson
signal.{firls, firwin, firwin2, remez}
sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}
special.comb
stats.kendalltau
All 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.simps
havebeen deprecated in favour of
scipy.integrate.trapezoid
,scipy.integrate.cumulative_trapezoid
,and
scipy.integrate.simpson
respectively and will be removed in SciPy 1.14.The
tol
argument ofscipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk,gmres,lgmres,minres,qmr,tfqmr}
is now deprecated in favour of
rtol
and will be removed in SciPy 1.14.Furthermore, the default value of
atol
for these functions is dueto change to
0.0
in SciPy 1.14.Expired Deprecations
There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:
centered
keyword ofscipy.stats.qmc.LatinHypercube
has been removed.Use
scrambled=False
instead ofcentered=True
.scipy.stats.binom_test
has been removed in favour ofscipy.stats.binomtest
.scipy.stats.iqr
, the use ofscale='raw'
has been removed in favourof
scale=1
.namespace, such as
numpy.histogram
exposed byscipy.histogram
, havebeen removed from SciPy's main namespace. Please use the functions directly
from
numpy
.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.
v1.11.4
: SciPy 1.11.4Compare Source
SciPy 1.11.4 Release Notes
SciPy
1.11.4
is a bug-fix release with no new featurescompared to
1.11.3
.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.11.3
: SciPy 1.11.3Compare Source
SciPy 1.11.3 Release Notes
SciPy
1.11.3
is a bug-fix release with no new featurescompared to
1.11.2
.Authors
A total of 17 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.11.2
: SciPy 1.11.2Compare Source
SciPy 1.11.2 Release Notes
SciPy
1.11.2
is a bug-fix release with no new featurescompared to
1.11.1
. Python3.12
and musllinux wheelsare provided with this release.
Authors
A total of 18 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.11.1
: SciPy 1.11.1Compare Source
SciPy 1.11.1 Release Notes
SciPy
1.11.1
is a bug-fix release with no new featurescompared to
1.11.0
. In particular, a licensing issuediscovered after the release of
1.11.0
has been addressed.Authors
A total of 4 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.11.0
: SciPy 1.11.0Compare Source
SciPy 1.11.0 Release Notes
SciPy
1.11.0
is 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 -Wd
and check forDeprecationWarning
s).Our development attention will now shift to bug-fix releases on the
1.11.x branch, and on adding new features on the main branch.
This release requires Python
3.9+
and NumPy1.21.6
or greater.For running on PyPy, PyPy3
6.0+
is required.Highlights of this release
scipy.sparse
array API improvements, includingsparse.sparray
, a newpublic base class distinct from the older
sparse.spmatrix
class,proper 64-bit index support, and numerous deprecations paving the way to a
modern sparse array experience.
scipy.stats
added tools for survival analysis, multiple hypothesis testing,sensitivity analysis, and working with censored data.
algebra functions
det
andlu
now accept nD-arrays.axes
argument was added broadly tondimage
functions, facilitatinganalysis of stacked image data.
New features
scipy.integrate
improvementsscipy.integrate.qmc_quad
for quasi-Monte Carlo integration.scipy.integrate.simpson
now calculatesa parabolic segment over the last three points which gives improved
accuracy over the previous implementation.
scipy.cluster
improvementsdisjoint_set
has a new methodsubset_size
for providing the sizeof a particular subset.
scipy.constants
improvementsquetta
,ronna
,ronto
, andquecto
SI prefixes were added.scipy.linalg
improvementsscipy.linalg.det
is improved and now accepts nD-arrays.scipy.linalg.lu
is improved and now accepts nD-arrays. With the newp_indices
switch the output permutation argument can be 1D(n,)
permutation index instead of the full
(n, n)
array.scipy.ndimage
improvementsaxes
argument was added torank_filter
,percentile_filter
,median_filter
,uniform_filter
,minimum_filter
,maximum_filter
, andgaussian_filter
, which can be useful forprocessing stacks of image data.
scipy.optimize
improvementsscipy.optimize.linprog
now passes unrecognized options directly to HiGHS.scipy.optimize.root_scalar
now uses Newton's method to be used withoutproviding
fprime
and thesecant
method to be used without a secondguess.
scipy.optimize.lsq_linear
now acceptsbounds
arguments of typescipy.optimize.Bounds
.scipy.optimize.minimize
method='cobyla'
now supports simple boundconstraints.
scipy.optimize.minimize
: If the provided callback callable acceptsa single keyword argument,
intermediate_result
,scipy.optimize.minimize
now passes both the current solution and the optimal value of the objective
function to the callback as an instance of
scipy.optimize.OptimizeResult
.It also allows the user to terminate optimization by raising a
StopIteration
exception from the callback function.scipy.optimize.minimize
will return normally, and the latest solutioninformation is provided in the result object.
scipy.optimize.curve_fit
now supports an optionalnan_policy
argument.scipy.optimize.shgo
now has parallelization with theworkers
argument,symmetry arguments that can improve performance, class-based design to
improve usability, and generally improved performance.
scipy.signal
improvementsistft
has an improved warning message when the NOLA condition fails.scipy.sparse
improvementsscipy.sparse.sparray
was introduced, allowing furtherextension of the sparse array API (such as the support for 1-dimensional
sparse arrays) without breaking backwards compatibility.
isinstance(x, scipy.sparse.sparray)
to select the new sparse array classes,while
isinstance(x, scipy.sparse.spmatrix)
selects only the old sparsematrix classes.
scipy.sparse.isspmatrix
now only returnsTrue
for the sparse matrices instances.scipy.sparse.issparse
now has to be used instead to check for instances of sparsearrays or instances of sparse matrices.
downcast to int32.
argmin
andargmax
methods now return the correct result when explicitzeros are present.
scipy.sparse.linalg
improvementsLinearOperator
by a number now returns a_ScaledLinearOperator
LinearOperator
now supports right multiplication by arrayslobpcg
should be more efficient following removal of an extraneousQR decomposition.
scipy.spatial
improvementswhich will see substantial performance improvements, though a few minor
regressions are known. These are focused on distances between boolean
arrays.
scipy.special
improvementsfactorial
,factorial2
andfactorialk
were made consistent in their behavior (in terms of dimensionality,
errors etc.). Additionally,
factorial2
can now handle arrays withexact=True
, andfactorialk
can handle arrays.scipy.stats
improvementsNew Features
scipy.stats.sobol_indices
, a method to compute Sobol' sensitivity indices.scipy.stats.dunnett
, which performs Dunnett's test of the means of multipleexperimental groups against the mean of a control group.
scipy.stats.ecdf
for computing the empirical CDF and complementaryCDF (survival function / SF) from uncensored or right-censored data. This
function is also useful for survival analysis / Kaplan-Meier estimation.
scipy.stats.logrank
to compare survival functions underlying samples.scipy.stats.false_discovery_control
for adjusting p-values to control thefalse discovery rate of multiple hypothesis tests using the
Benjamini-Hochberg or Benjamini-Yekutieli procedures.
scipy.stats.CensoredData
to represent censored data. It can be used asinput to the
fit
method of univariate distributions and to the newecdf
function.method='Filliben'
ofscipy.stats.goodness_of_fit
.scipy.stats.ttest_ind
has a new method,confidence_interval
forcomputing a confidence interval of the difference between means.
scipy.stats.MonteCarloMethod
,scipy.stats.PermutationMethod
, andscipy.stats.BootstrapMethod
are new classes to configure resampling and/orMonte Carlo versions of hypothesis tests. They can currently be used with
scipy.stats.pearsonr
.Statistical Distributions
Added the von-Mises Fisher distribution as
scipy.stats.vonmises_fisher
.This distribution is the most common analogue of the normal distribution
on the unit sphere.
Added the relativistic Breit-Wigner distribution as
scipy.stats.rel_breitwigner
.It is used in high energy physics to model resonances.
Added the Dirichlet multinomial distribution as
scipy.stats.dirichlet_multinomial
.Improved the speed and precision of several univariate statistical
distributions.
scipy.stats.anglit
sf
scipy.stats.beta
entropy
scipy.stats.betaprime
cdf
,sf
,ppf
scipy.stats.chi
entropy
scipy.stats.chi2
entropy
scipy.stats.dgamma
entropy
,cdf
,sf
,ppf
, andisf
scipy.stats.dweibull
entropy
,sf
, andisf
scipy.stats.exponweib
sf
andisf
scipy.stats.f
entropy
scipy.stats.foldcauchy
sf
scipy.stats.foldnorm
cdf
andsf
scipy.stats.gamma
entropy
scipy.stats.genexpon
ppf
,isf
,rvs
scipy.stats.gengamma
entropy
scipy.stats.geom
entropy
scipy.stats.genlogistic
entropy
,logcdf
,sf
,ppf
,and
isf
scipy.stats.genhyperbolic
cdf
andsf
scipy.stats.gibrat
sf
andisf
scipy.stats.gompertz
entropy
,sf
. andisf
scipy.stats.halflogistic
sf
, andisf
scipy.stats.halfcauchy
sf
andisf
scipy.stats.halfnorm
cdf
,sf
, andisf
scipy.stats.invgamma
entropy
scipy.stats.invgauss
entropy
scipy.stats.johnsonsb
pdf
,cdf
,sf
,ppf
, andisf
scipy.stats.johnsonsu
pdf
,sf
,isf
, andstats
scipy.stats.lognorm
fit
scipy.stats.loguniform
entropy
,logpdf
,pdf
,cdf
,ppf
,and `
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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.