Skip to content

chore(deps): update dependency scipy to v1.18.0 - #14

Open
eagleoflqj wants to merge 1 commit into
masterfrom
renovate/scipy-1.x
Open

chore(deps): update dependency scipy to v1.18.0#14
eagleoflqj wants to merge 1 commit into
masterfrom
renovate/scipy-1.x

Conversation

@eagleoflqj

@eagleoflqj eagleoflqj commented Aug 21, 2023

Copy link
Copy Markdown
Owner

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
scipy ==1.9.3==1.18.0 age confidence

Release Notes

scipy/scipy (scipy)

v1.18.0: SciPy 1.18.0

Compare Source

SciPy 1.18.0 Release Notes

SciPy 1.18.0 is the culmination of 6 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with python -Wd and check for DeprecationWarning s).
Our development attention will now shift to bug-fix releases on the
1.18.x branch, and on adding new features on the main branch.

This release requires Python 3.12-3.14 and NumPy 2.0.0 or greater.

Highlights of this release

  • SciPy now supports three different build modes for BLAS and LAPACK
    LP64/ILP64 support, and machinery is provided for downstream cython_lapack
    consumers to gracefully handle LP64/ILP64 backend builds. ILP64 support
    has been substantially improved across the SciPy library.
  • Remaining Fortran to C translations have been completed---an experimental
    Fortran-free build option is now available to developers for testing
    purposes. Developer feedback is welcome on Fortran-free builds.
  • scipy.signal.whittaker_henderson now provides access to Whittaker-Henderson
    smoothing of a discrete signal.
  • A large number of scipy.stats functions now support lazy arrays and JAX
    JIT. Array API support has been improved substantially in SciPy, with at least
    21 functions gaining new support in this release. 16 scipy.stats functions
    have also gained support for MArray input.

New features

scipy.fft improvements

  • SciPy's internal FFT backend has switched from pocketfft to its
    successor package ducc0.fft, which features several incremental
    improvements. The most significant of those from SciPy's perspective is
    probably that storage requirements for internally cached plans have been
    significantly reduced for most long 1D transforms. Plans that require more
    storage than 1MB will no longer be cached; this mainly affects huge 1D
    transforms of prime and near-prime sizes.

scipy.interpolate improvements

  • Users may now increase the QHull simplex assignment tolerance via the new
    simplex_tolerance argument to the _call__ methods of
    LinearNDInterpolator and CloughTocher2dInterpolator. This can
    help users avoid holes in certain interpolation problems.
  • The FITPACK Fortran code has been ported to C.

scipy.differentiate improvements

  • scipy.differentiate.derivative now supports passing kwargs to the
    function whose derivative is desired.

scipy.linalg improvements

  • We now support three different build modes for BLAS and LAPACK: LP64-only,
    ILP64-only, and ILP64 for everyting except cython_blas/cython_lapack/
    linalg.blas/linalg.lapack (support for Accelerate and MKL).
  • Machinery is now provided for downstream cython_lapack users to gracefully
    handle LP64/ILP64 backend builds. Worked examples, including build system
    details, have been included in this release.
  • An overwrite_b keyword argument was added to eigvals, for consistency
    with other similar linalg functions.
  • linalg.cholesky now leverages symmetry properties for performance
    improvements, especially for real matrices. The batching loop of cholesky
    has now also been moved to a C implementation.
  • scipy.linalg.lu and scipy.linalg.det have been rewritten in C++ with
    batching support in the compiled code.
  • Added ILP64 support to scipy.linalg.expm and scipy.linalg.sqrtm.
  • The batching loops of scipy.linalg.qr, scipy.linalg.eig,
    scipy.linalg.lstsq, and scipy.linalg.svd have been moved to C,
    providing a substantial speedup for batched input.
  • The performance of scipy.linalg.expm has been improved.
  • The performance for scipy.linalg.solve has improved for batched inputs.
  • scipy.linalg.bandwidth now supports batching for greater than or equal to
    2 dimensional input.

scipy.optimize improvements

  • The trust_constr method for minimize was adjusted so that if the x
    array would result in infeasible constraints, and those constraints were
    marked as keep_feasible, then the objective function is not called with
    that x array.
  • The COBYQA method for minimize now supports being called
    concurrently by multiple threads. Previously, multiple threads calling this
    function would only run one at a time.
  • scipy.optimize.nnls, and minimize methods SLSQP and L-BFGS-B
    now have support for ILP64 LAPACK, when available.
  • Functions in scipy.optimize.elementwise now support passing kwargs
    to the callable function.

scipy.signal improvements

  • The new ~scipy.signal.whittaker_henderson implements Whittaker-Henderson smoothing
    of a discrete signal. It offers different penalties to control the smoothness as well
    as automatic selection of the penalty strength via optimization of the restricted
    maximum likelihood (REML) criterion.
    It is a valuable alternative for the Savitzky-Golay filter
    ~scipy.signal.savgol_filter.
    In econometrics, Whittaker-Henderson graduation of penalty order 2 is also known as
    Hodrick-Prescott filter.
  • lfilter_zi was refactored for improved numerical stability and
    efficiency. It now raises a ValueError if parameter a has leading
    zeros, i.e., a[0] == 0, since lfilter and filtfilt do not support
    that as well. Furthermore, a ValueError instead of a LinAlgError is
    raised if the filter is unstable due to having a pole at z = 1.

scipy.sparse improvements

  • In scipy.sparse.csgraph the computation of strongly connected components
    for directed graphs is now 2x faster with better cache locality, using
    algorithmic improvements described in the recent survey by Tarjan and Zwick.
  • Added ILP64 BLAS/LAPACK support to SuperLU and PROPACK extensions.
  • All sparse array/matrix formats now support matrix_transpose/.mT.
  • Support for n-dimensional linear operators has been added to
    scipy.sparse.linalg.LinearOperator, and LinearOperator now has
    a new rdot method.
  • scipy.sparse.linalg.minres now supports complex hermitian matrices.

scipy.integrate improvements

  • ILP64 support was added for ODEPACK
  • scipy.integrate.tanhsinh and scipy.integrate.nsum now support passing
    kwargs to the function to be integrated.

scipy.spatial improvements

  • 3D area calculations are now faster in scipy.spatial.SphericalVoronoi.
  • N-dimensional input is now supported for scipy.spatial.distance.minkowski,
    scipy.spatial.distance.euclidean, and scipy.spatial.distance.sqeuclidean.
  • It is now possible to return sparse arrays rather than matrices from
    KDTree.sparse_distance_matrix.
  • It is now possible to compose Rotation and RigidTransform directly,
    by automatically promoting Rotation when the two are composed via
    a multiplication operator.

scipy.special improvements

  • The accuracy of the following functions was improved: scipy.special.bdtrik,
    scipy.special.bdtrin, scipy.special.nbdtrik, scipy.special.nbdtrin.
  • The numerical behavior for scipy.special.eval_jacobi has been improved
    for several parameter combinations.
  • The Bessel functions scipy.special.j0 and scipy.special.y0
    have improved accuracy for large arguments.

scipy.stats improvements

  • The accuracy of scipy.stats.pmean with tiny, nonzero p has been
    improved.
  • The performance of scipy.stats.halfgennorm has been improved.
  • zstatistic has been added to the result object of
    scipy.stats.mannwhitneyu.
  • A large number of stats functions now support lazy arrays and JAX
    JIT (see Python Array API support section below).
  • Support for the nan_policy keyword argument has been added to:
    scipy.stats.obrientransform, scipy.stats.boxcox,
    scipy.stats.boxcox_normmax, scipy.stats.yeojohnson,
    scipy.stats.yeojohnson_normmax, scipy.stats.sigmaclip, and
    scipy.stats.expectile.
  • scipy.stats.ContinuousDistribution.lmoment has been added for computing
    population L-moments.
  • The new function scipy.stats.estimated_cdf has been added. It reproduces
    much of the functionality of stats.mstats.plotting_positions,
    stats.percentileofscore, stats.ecdf.cdf, and stats.cumfreq, but
    is also vectorized.
  • scipy.stats.ansari accepts a new method argument.
  • scipy.stats.bws_test, scipy.stats.expectile, and
    scipy.stats.quantile_test now accept an axis argument.
  • scipy.stats.expectile and scipy.stats.quantile_test accept a new
    keepdims argument.
  • scipy.stats.binomtest now supports batching of k, n, and p.

Python Array API Standard Support

  • Support has been added for CuPy delegation for: interpolate.PPoly,
    interpolate.BPoly, and interpolate.BSpline.
  • CuPy support has been added for scipy.stats.rankdata.
  • Array API support has been added for method and trim usage
    in scipy.stats.ttest_ind.
  • Support for MArrays has been added to: scipy.stats.cramervonmises,
    scipy.stats.ks_1samp, scipy.stats.ks_2samp, scipy.stats.mode,
    scipy.stats.rankdata, scipy.stats.kruskal, scipy.stats.brunnermunzel,
    scipy.stats.spearmanrho, scipy.stats.friedmanchisquare,
    scipy.stats.cramervonmises_2samp, scipy.stats.mannwhitneyu,
    scipy.stats.wilcoxon, scipy.stats.fligner, scipy.stats.linregress,
    scipy.stats.alexandergovern, and scipy.stats.levene.
  • Array API support has been added to: scipy.stats.quantile_test,
    scipy.stats.kendalltau (via NumPy conversion), scipy.stats.kstest,
    scipy.sparse.linalg.LinearOperator, scipy.stats.cumfreq,
    scipy.stats.relfreq, scipy.stats.ks_2samp, scipy.stats.theilslopes,
    scipy.stats.siegelslopes, scipy.stats.obrientransform (including marray),
    scipy.stats.binomtest, scipy.integrate.fixed_quad, scipy.signal.square,
    scipy.stats.expectile, scipy.stats.shapiro, scipy.stats.pointbiserialr,
    scipy.stats.bws_test, scipy.stats.estimated_cdf (new function),
    scipy.stats.linregress, scipy.integrate.simpson, and
    scipy.signal.sawtooth.
  • The torch support for scipy.signal.fftconvolve now correctly
    handles the float32 dtype.
  • JAX JIT support has been added for: scipy.stats.binomtest
    (except for method='two-sided'), scipy.stats.mannwhitneyu
    (except for method='auto'), scipy.stats.lmoment, scipy.stats.moment,
    scipy.stats.ansari (related to new method argument),
    scipy.stats.yeojohnson_llf, scipy.stats.epps_singleton_2samp,
    scipy.stats.wilcoxon (except for method='exact' and method='auto'),
    scipy.stats.rankdata (via delegation), scipy.signal.oaconvolve,
    scipy.signal.hilbert, and scipy.signal.hilbert2.

Deprecated features and future changes

  • passing lwork parameter to scipy.linalg.qr has been deprecated. The
    functionality was rarely used; the function computes the optimal size of the
    work arrays automatically, therefore users should simply remove their uses
    of the lwork parameter.
  • The sparse construction functions kron, kronsum and block_diag
    choose return type sparray or spmatrix depending on the type of the
    sparse input arrays. When no inputs are sparse, the output is chosen to be
    spmatrix. That has been deprecated. The return type when no inputs are
    sparse will be changing to sparray. You can control the output type by
    ensuring that at least one input array is sparse. If any are sparray,
    the output will be sparray. If all sparse inputs are spmatrix,
    the output will be spmatrix.
  • A FutureWarning is now issued for calling {r}matvec on column vectors
    with LinearOperator. Identical behavior can be achieved (and extended to
    batch dimensions) via {r}matmat.
  • scipy.linalg functions are now stricter--using non-LAPACK dtypes is
    deprecated. When the deprecations expire, this will effectively limit the
    dtypes allowed in linear algebra functions to: integers (upcast to float),
    and single/double precision float/complex dtypes.
  • scipy.spatial.minkowsi_distance, scipy.spatial.minkowsi_distance_p,
    and scipy.spatial.distance_matrix have been deprecated in favor of
    other superior functions.
  • scipy.spatial.tsearch has been deprecated because it duplicates functionality
    more conveniently provided within the Delaunay class proper.
  • The following functions have been deprecated because they were deemed
    not practically useful: scipy.interpolate.pade, scipy.interpolate.lagrange,
    and scipy.interpolate.approximate_taylor_polynomial.
  • Setting spmatrix=True for the scipy.io readers mmio, FFM, hb,
    and matlab/_mio is now deprecated, including when set as the default
    value.
  • The unintentionally public scipy.cluster.vq.py_vq has been deprecated.

Backwards incompatible changes

  • The output of scipy.stats.rankdata is now always of a floating point
    dtype -- the result dtype of the input and a Python float.
  • The behavior of the residuals returned by scipy.linalg.lstsq has been
    changed. For lapack_driver == "gelsy" or the system being either
    underdetermined or square, empty residuals are still returned. For
    lapack_driver == "gesld"/"gelss" in combination with an overdetermined
    system a non-empty residual is always returned. However, in the case where a
    slice is not full column rank, the corresponding residual is set to NaN.
  • The 2nd output object of scipy.stats.contingency.crosstab when kwarg
    sparse=True is now a sparse array holding the counts instead of a sparse
    matrix. This allows it to be nD, so can accept more than 2 sequences as
    inputs, but it is a different class. Most operations work the same for
    sparse arrays and matrixes with notable differences for matrix: * means
    matmul and always-2D. For more info see migration_to_sparray.
  • scipy.stats.obrientransform now returns a tuple of arrays instead of
    a single ndarray.
  • scipy.stats.multinomial now returns NaNs when the category probability
    (p) rows/arrays do not sum to unity. This is an expiration of the deprecated
    behavior of adjusting the final element in the p array to compensate.
    Note that multinomial.rvs will now raise an error in such cases, since it
    has an integral return type.
  • The iprint and disp parameters of scipy.optimize.fmin_l_bfgs_b
    have been removed, following the expiry of their deprecation.
  • For scipy.linalg.{sqrtm, logm, signm}, disp (and sqrtm
    blocksize) parameters were removed (expired deprecations).
  • The deprecated atol argument of scipy.optimize.nnls has been
    removed.
  • For 2D input, the return type of scipy.linalg.bandwidth has changed from
    (int, int) to (np.int64, np.int64).
  • The second return type of scipy.linalg.cho_factor changed from bool
    to NDArray[np.bool].
  • The second return type of scipy.interpolate.splint changed from a 1D
    float64 array to None when full_output=True.
  • The types of the k and n attributes of the BinomTestResult
    object returned by scipy.stats.binomtest have changed from int to
    np.float64.

Other changes

  • The vendored Boost.Math was updated from 1.89.0 to 1.91.0.
  • SciPy now has a Pixi package definition, allowing developers to easily build
    SciPy from source inside Pixi workspaces.
  • Developers may be interested in the private build option _without-fortran,
    which allows building SciPy from source in the absence of a Fortran compiler.
    This is an early prototype of the planned capability of a Fortran-free
    SciPy.
  • The private scipy.interpolate._regrid function may be of experimental
    interest. It provides an interface for 2-D smoothing B-spline fitting via
    separable 1-D FITPACK kernels. It is under consideraton for public exposure
    in some form in the future.
  • Python 3.13t (3.13 free threading) wheels are not provided on PyPI for this
    and subsequent releases because 3.13t was deprecated by manylinux and
    dropped by cibuildwheel in favor of 3.14t.
  • Previously, return values of scipy.linalg.eig were always Fortran-ordered, and in
    SciPy 1.18.0 they may or may not be. If the ordering is important (for example,
    when interfacing with compiled code which expects specific array strides), users
    should ensure the desired ordering manually.

Authors

  • Name (commits)
  • h-vetinari (1)
  • Joseph Adams (1) +
  • Adrián Raso González (1) +
  • Virgile Andreani (1)
  • AshwathElang0 (1) +
  • Mart-Mihkel Aun (1) +
  • BarnikRB (2) +
  • Richie Bendall (1) +
  • J Berg (7) +
  • Florian Bourgey (50)
  • Jake Bowhay (99)
  • Jonathan Brodrick (1) +
  • Dietrich Brunn (36)
  • Evgeni Burovski (200)
  • Matthias Bussonnier (6)
  • CJ Carey (9)
  • Christine P. Chai (2)
  • Lucas Colley (90)
  • Dan (3) +
  • devdanzin (2) +
  • Martin Diehl (4)
  • Sam Dolat (2) +
  • dphipps-qnx (1) +
  • DWesl (2)
  • efrat99 (3) +
  • fbrandt (1) +
  • August Femtehjell (2) +
  • Matthew H Flamm (1)
  • Juan Flores (1) +
  • foreverallama (1) +
  • fumoboy007 (4) +
  • John Patrick Gallagher (1) +
  • Wei Bo Gao (1) +
  • Christoph Gohlke (1)
  • Nathan Goldbaum (20)
  • Ludmila Golomozin (11) +
  • Ralf Gommers (173)
  • Mathieu Guay-Paquet (1) +
  • Matt Haberland (147)
  • Joren Hammudoglu (30)
  • Jacob Hass (4)
  • Maya Horii (1) +
  • Guido Imperiale (1)
  • Jan Möseritz-Schmidt (2)
  • Leo Ji (4) +
  • JOD (2) +
  • Aditya Kamath (2) +
  • Mukunda Rao Katta (1) +
  • Robert Kern (1)
  • Ria Khatoniar (1) +
  • Matthias Koeppe (1)
  • krishneetRAJ (1) +
  • Iason Krommydas (1) +
  • Eric Larson (1)
  • Basil Liekens (31) +
  • lnzwz (2) +
  • Christian Lorentzen (15)
  • Alex Lubbock (1) +
  • Echedey Luis (2) +
  • Lunyxis (1) +
  • Zhang Maiyun (1) +
  • Diego Medina Medina (1) +
  • Elle Musoke (11) +
  • Andrew Nelson (103)
  • Nick ODell (29)
  • Dimitri Papadopoulos Orfanos (1)
  • partev (1)
  • Matti Picus (7)
  • Ilhan Polat (190)
  • Pradyot Ranjan (2) +
  • Adrian Raso (3)
  • Aditya Rawat (1) +
  • Tyler Reddy (99)
  • Martin Reinecke (1)
  • Lucas Roberts (6)
  • Pamphile Roy (1)
  • Daniel Schmitz (26)
  • Martin Schuck (4)
  • Dan Schult (47)
  • Scott Shambaugh (16)
  • Sabaa Siddique (1) +
  • Nicholas Smith (1) +
  • Johannes F. Sommerfeldt (1) +
  • SpookyYomo (2) +
  • Albert Steppi (80)
  • Charalampos Stratakis (16) +
  • Taylor (1) +
  • thecaptain789 (1) +
  • Adam Turner (1)
  • Jacob Vanderplas (1)
  • Christian Veenhuis (2)
  • Sebastiano Vigna (1)
  • Rivka Walles (14) +
  • Warren Weckesser (11)
  • Soeren Wolfers (1) +
  • wongaokay (1) +
  • Xuefeng Xu (1)
  • Aniket Singh Yadav (2) +
  • yaochengchen (2) +
  • Fadi Younes (2) +
  • Isaiah Zimmerman (1) +
  • Simon Zwieback (1) +
  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (19)

A total of 103 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.

Note that the source and binary assets associated with this release were published to PyPI using trusted publishing, and so the trusted assets and their hashes are made available more securely at https://pypi.org/project/scipy/1.18.0/ rather than providing them here in a less secure manner.

v1.17.1: SciPy 1.17.1

Compare Source

SciPy 1.17.1 Release Notes

SciPy 1.17.1 is a bug-fix release with no new features compared to 1.17.0.

Authors

  • Name (commits)
  • Evgeni Burovski (5)
  • Lucas Colley (1)
  • Christoph Gohlke (1)
  • Ralf Gommers (6)
  • Matt Haberland (5)
  • Matthias Koeppe (1)
  • Nick ODell (1)
  • Ilhan Polat (10)
  • Tyler Reddy (44)
  • Martin Schuck (3)
  • Dan Schult (3)
  • stratakis (1) +
  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (1)

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.

Complete issue list, PR list, and release asset hashes are available in the associated README.txt.

v1.17.0: SciPy 1.17.0

Compare Source

SciPy 1.17.0 Release Notes

SciPy 1.17.0 is the culmination of 6 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with python -Wd and check for DeprecationWarning s).
Our development attention will now shift to bug-fix releases on the
1.17.x branch, and on adding new features on the main branch.

This release requires Python 3.11-3.14 and NumPy 1.26.4 or greater.

Highlights of this release

  • Many SciPy functions have gained native support for batching of N-dimensional
    array input and additional support for the array API standard. An overall
    summary of the latter is now available in a set of tables.
  • In scipy.sparse, coo_array now supports indexing. This includes integers,
    slices, arrays, np.newaxis, Ellipsis, in 1D, 2D and the relatively
    new nD. In scipy.sparse.linalg, ARPACK and PROPACK rewrites from Fortran77
    to C now empower the use of external pseudorandom number generators, e.g.
    from numpy.
  • In scipy.spatial, transform.Rotation and transform.RigidTransform
    have been extended to support N-D arrays. geometric_slerp now has support
    for extrapolation.
  • scipy.stats has gained the matrix t and logistic distributions and many
    performance and accuracy improvements.
  • Initial support for 64-bit integer (ILP64) BLAS and LAPACK libraries has
    been added, including for MKL and Apple Accelerate. Please report any issues with
    ILP64 you encounter.

New features

scipy.integrate improvements

  • The integration routines dopri5, dopri853, LSODA, vode, and
    zvode have been ported from Fortran77 to C.
  • scipy.integrate.quad now has a fast path for returning 0 when the integration
    interval is empty.
  • The BDF, DOP853, RK23, RK45, OdeSolver, DenseOutput,
    ode, and complex_ode classes now support subscription, making them
    generic types, for compatibility with scipy-stubs.

scipy.cluster improvements

  • scipy.cluster.hierarchy.is_isomorphic has improved performance and array
    API support.

scipy.interpolate improvements

  • A new bc_type argument has been added to scipy.interpolate.make_splrep,
    scipy.interpolate.make_splprep, and scipy.interpolate.generate_knots to
    control the boundary conditions for spline fitting. Allowed values are
    "not-a-knot" (default) and "periodic".
  • A new derivative method has been added to the
    scipy.interpolate.NdBSpline class, to construct a new spline representing a
    partial derivative of the given spline. This method is similar to the
    BSpline.derivative method of 1-D spline objects. In addition, the
    NdBSpline mutable instance attribute .c was changed into a read-only
    @property.
  • Performance of "cubic" and "quintic" modes of
    scipy.interpolate.RegularGridInterpolator has been improved. Furthermore,
    the (mutable) instance attributes .grid and .values were changed into
    (read-only) properties.
  • Numerical stability of scipy.interpolate.AAA has been improved and it has
    gained a new axis parameter.
  • scipy.interpolate.FloaterHormannInterpolator added support for
    multidimensional, batched inputs and gained a new axis parameter to
    select the interpolation axis.
  • RBFInterpolator has gained an array API standard compatible backend, with an
    improved support for GPU arrays.
  • The AAA, *Interpolator, *Poly, and *Spline classes now
    support subscription, making them generic types, for compatibility with
    scipy-stubs.

scipy.linalg improvements

  • scipy.linalg.inv routine has been improved:

    • it now attempts to detect the structure of its argument and selects an
      appropriate low-level matrix inversion routine. A new assume_a keyword
      allows to bypass the structure detection if the structure is known. For
      batched inputs, the detection is run for each 2D slice, unless an explicit
      value for assume_a is provided (in which case, the structure is
      assumed to be the same for all 2-D slices of the batch);
    • the new lower={True,False} keyword argument has been added to help
      select the upper or lower triangle of the input matrix for symmetric
      inputs; refer to the docstring of scipy.linalg.inv for details;
    • the routine emits a LinAlgWarning if it detects an ill-conditioned
      input;
    • performance for batched inputs has been improved.
  • scipy.linalg.fiedler has gained native support for batched inputs.

  • performance has improved for scipy.linalg.solve with batched inputs
    for certain matrix structures.

scipy.optimize improvements

  • optimize.minimize(method="trust-exact") now accepts a
    solver-specific "subproblem_maxiter" option. This option can be used to
    assure that the algorithm converges for functions with an ill-conditioned
    Hessian.
  • Callback functions used by optimize.minimize(method="slsqp") can
    opt into the new callback interface by accepting a single keyword argument
    intermediate_result.
  • The BroydenFirst, *Jacobian, and Bounds classes now support
    subscription, making them generic types, for compatibility with
    scipy-stubs.

scipy.signal improvements

  • scipy.signal.abcd_normalize gained more informative error messages and the
    documentation was improved.
  • scipy.signal.get_window now accepts the suffixes '_periodic' and
    '_symmetric' to distinguish between periodic and symmetric windows
    (overriding the fftbin parameter). This benefits the functions
    coherence, csd, periodogram, welch, spectrogram,
    stft, istft, resample, resample_poly, firwin,
    firwin2, firwin_2d, check_COLA and check_NOLA, which utilize
    get_window but do not expose the fftbin parameter.
  • scipy.signal.hilbert2 gained the new keyword axes for specifying the
    axes along which the two-dimensional analytic signal should be calculated.
    Furthermore, the documentation of scipy.signal.hilbert and
    scipy.signal.hilbert2 was significantly improved.
  • The ShortTimeFFT and LinearTimeInvariant classes now support
    subscription, making them generic types, for compatibility with
    scipy-stubs.

scipy.sparse improvements

  • coo_array now supports indexing. This includes slices, arrays,
    np.newaxis, Ellipsis, in 1D, 2D and the new nD. So COO format now
    has full support for nD and COO now allows indexing without converting
    formats.
  • Additional sparse construction functions include expand_dims,
    swapaxes, permute_dims, and nD support for the kron function.
  • ARPACK Fortran77 library is ported to C. Among many changes, it is now
    possible to use external random generators including NumPy PRNGs for
    reproducible runs. Previously this was not the case due to internal seeding
    behavior of the original ARPACK code.
  • Similarly, PROPACK Fortran77 library is also ported to C with the same PRNG
    enhancements and other improvements.
  • scipy.sparse.dok_array now supports an update method which can be
    used to update the sparse array using a dict, dict.items()-like iterable,
    or another dok_array matrix. It performs additional validation that keys
    are valid index tuples.
  • scipy.sparse.dia_array.tocsr is approximately three times faster and
    some unnecessary copy operations have been removed from sparse format
    interconversions more broadly.
  • Added scipy.sparse.linalg.funm_multiply_krylov, a restarted Krylov method
    for evaluating y = f(tA) b.
  • In sparse.linalg, the LinearOperator, LaplacianNd, and SuperLU
    classes now support subscription, making them generic types, for
    compatibility with scipy-stubs.
  • In sparse.linalg the eigs and eigsh functions now accept a new
    rng parameter.

scipy.spatial improvements

  • The spatial.transform module has gained an array API standard compatible
    backend.

  • transform.Rotation and transform.RigidTransform have been extended
    from 0D single values and 1D arrays to N-D arrays, with standard indexing and
    broadcasting rules. Both now have the following additions:

    • A shape property.
    • A shape argument to their identity() constructors, which should be
      preferred over the existing num argument. This has also been added as an
      argument for Rotation.random() (RigidTransform does not currently
      have a random constructor).
    • An axis argument to their mean() functions.
  • The resulting shapes for transform.Rotation.from_euler /
    from_davenport have changed to make them consistent with broadcasting
    rules. Angle inputs to Euler angles must now strictly match the number of
    provided axes in the last dimension. The resulting Rotation has the shape
    np.atleast_1d(angles).shape[:-1]. Angle inputs to Davenport angles must
    also match the number of axes in the last dimension. The resulting Rotation
    has the shape np.broadcast_shapes(np.atleast_2d(axes).shape[:-2], np.atleast_1d(angles).shape[:-1]).

  • Rotation.from_matrix has gained an assume_valid argument that allows for
    performance improvements when users can guarantee valid matrix inputs.
    from_matrix is now also faster in cases where a known orthogonal matrix
    is used.

  • The scipy.spatial.geometric_slerp function can now extrapolate. When given a
    value outside the range [0, 1], geometric_slerp() will continue with
    the same rotation outside this range. For example, if spherically
    interpolating with start being a point on the equator, and end
    being a point at the north pole, then a value of t=-1 would give you a
    point at the south pole.

  • Rotation.as_euler and Rotation.as_davenport methods have gained a
    suppress_warnings parameter to enable suppression of gimbal lock warnings.

  • Rotation.__init__ has gained a new optional scalar_first parameter and
    there is a new Rotation.__setitem__ method.

scipy.special improvements

  • The following functions for statistical applications have significantly
    improved parameter ranges and reduced error rates: btdtria, btdtrib,
    chdtriv, chndtr, chndtrix, chndtridf, chndtrinc, fdtr,
    fdtrc, fdtri, gdtria, gdtrix, pdtrik, stdtr and
    stdtrit.
  • The incomplete beta functions betainc, betaincc, betaincinv and
    betainccinv are improved for extreme parameter ranges.

scipy.stats improvements

  • scipy.stats.matrix_t has been added to represent the matrix t distribution.
    It supports methods pdf (and logpdf) for computing the probability
    density function and rvs for generating random variates.
  • scipy.stats.Logistic was added for modeling random variables that follow a
    logistic distribution.
  • scipy.stats.quantile now accepts a weights argument to specify
    frequency weights.
  • scipy.stats.quantile is now faster on large arrays as it no longer uses
    stable sort internally.
  • scipy.stats.quantile supports three new values of the method argument,
    'round_inward', 'round_outward', and 'round_neareast', for use in
    the context of trimming and winsorizing data.
  • scipy.stats.truncpareto now accepts negative values for the exponent shape
    parameter, enabling use of truncpareto as a more general power law
    distribution.
  • scipy.stats.logser now provides a distribution-specific implementation of
    the sf method, improving speed and accuracy.
  • Implementations of the following function have been vectorized:
    scipy.stats.ansari, scipy.stats.cramervonmises,
    scipy.stats.cramervonmises_2samp, scipy.stats.epps_singleton_2samp,
    scipy.stats.fligner, scipy.stats.friedmanchisquare, scipy.stats.kruskal,
    scipy.stats.ks_1samp, scipy.stats.levene, and scipy.stats.mood.
    Typically, this improves performance with multidimensional (batch) input.
  • The critical value tables of scipy.stats.anderson have been updated.
  • A new method parameter of scipy.stats.anderson allows the user
    to compute p-values by interpolating between tabulated values or using Monte
    Carlo simulation. The method parameter must be passed explicitly
    to add a pvalue attribute to the result object and avoid a warning
    about the upcoming removal of critical_value, significance_level,
    and fit_result attributes.
  • A new variant parameter of scipy.stats.anderson_ksamp allows the user
    to select between three different variants of the statistic, superseding the
    midrank parameter which allowed toggling between two. The new 'continuous'
    variant is equivalent to 'discrete' when there are no ties in the sample, but
    the calculation is faster. The variant parameter must be passed explicitly to
    avoid a warning about the deprecation of the midrank attribute and the upcoming
    removal of critical_values from the result object.
  • The speed and accuracy of most scipy.stats.zipfian methods has been
    improved.
  • The accuracies of the scipy.stats.Binomial methods logcdf and
    logccdf have been improved in the tails.
  • The default guess of scipy.stats.trapezoid.fit has been improved.
  • The accuracy and range of the cdf, sf, isf, and ppf methods
    of scipy.stats.binom and scipy.stats.nbinom has been improved.
  • The Covariance, Uniform, Normal, Binomial, Mixture,
    rv_frozen, and multi_rv_frozen classes now support subscription,
    making them generic types, for compatibility with scipy-stubs.
  • The multivariate_t and multivariate_normal distributions have gained
    a new marginal method.
  • yeojohnson_llf gained new parameters axis, nan_policy,
    and keepdims, and now returns a numpy scalar where it would previously
    return a 0D array.
  • The new spearmanrho function is an array API compatible substitute for
    spearmanr.
  • The median_abs_deviation function has gained a keepdims parameter.
  • The trim_mean function has gained new nan_policy and keepdims
    parameters.

Array API Standard Support

  • An overall summary table for our array API standard support/coverage is
    now available.
  • The overhead associated with array namespace determination has been reduced,
    providing improved performance in dispatching to different backends.
  • scipy.cluster.hierarchy.is_isomorphic has gained support.
  • scipy.interpolate.make_lsq_spline, scipy.interpolate.make_smoothing_spline,
    scipy.interpolate.make_splrep, scipy.interpolate.make_splprep,
    scipy.interpolate.generate_knots, and scipy.interpolate.make_interp_spline
    have gained support.
  • scipy.signal.bilinear, scipy.signal.iircomb, scipy.signal.iirdesign,
    scipy.signal.iirfilter, scipy.signal.iirpeak, scipy.signal.iirnotch,
    scipy.signal.gammatone, and scipy.signal.group_delay have gained support.
  • scipy.signal.butter, scipy.signal.buttap, scipy.signal.buttord,
    scipy.signal.cheby1, scipy.signal.cheb1ap, scipy.signal.cheb1ord,
    scipy.signal.cheby2, scipy.signal.cheb2ap, scipy.signal.cheb2ord,
    scipy.signal.bessel, scipy.signal.besselap, scipy.signal.ellip,
    scipy.signal.ellipap, and scipy.signal.ellipord have gained support.
  • scipy.signal.savgol_filter, scipy.signal.savgol_coeffs, and
    scipy.signal.abcd_normalize have gained support.
  • spatial.transform has gained support.
  • scipy.integrate.qmc_quad, scipy.integrate.cumulative_simpson,
    scipy.integrate.cumulative_trapezoid, and scipy.integrate.romb have
    gained support.
  • scipy.linalg.block_diag, scipy.linalg.fiedler, and
    scipy.linalg.orthogonal_procrustes have gained support.
  • scipy.interpolate.BSpline, scipy.interpolate.NdBSpline,
    scipy.interpolate.RegularGridInterpolator, and
    scipy.interpolate.RBFInterpolator gained support.
  • Support added for scipy.stats.alexandergovern, scipy.stats.bootstrap,
    scipy.stats.brunnermunzel, scipy.stats.chatterjeexi,
    scipy.stats.cramervonmises, scipy.stats.cramervonmises_2samp,
    scipy.stats.epps_singleton_2samp, scipy.stats.false_discovery_control,
    scipy.stats.fligner, scipy.stats.friedmanchisquare, scipy.stats.iqr,
    scipy.stats.kruskal, scipy.stats.ks_1samp, scipy.stats.levene,
    scipy.stats.lmoment, scipy.stats.mannwhitneyu,
    scipy.stats.median_abs_deviation, scipy.stats.mode, scipy.stats.mood,
    scipy.stats.ansari,
    scipy.stats.power, scipy.stats.permutation_test, scipy.stats.sigmaclip,
    scipy.stats.wilcoxon, and scipy.stats.yeojohnson_llf.
  • scipy.stats.pearsonr has gained support for JAX and Dask backends.
  • scipy.stats.variation has gained support for the Dask backend.
  • marray support was added for stats.gtstd, stats.directional_stats,
    stats.bartlett, stats.variation, stats.pearsonr, and
    stats.entropy.

Deprecated features and future changes

  • The scipy.odr module is deprecated in v1.17.0 and will be completely
    removed in v1.19.0. Users are suggested to use the odrpack package instead.
  • The default dype behavior of scipy.sparse.diags and
    scipy.sparse.diags_array will change in v1.19.0.
  • In v1.19.0, scipy.linalg.hankel will no longer ravel multidimensional
    inputs and instead will treat them as a batch.
  • The precenter argument of scipy.signal.lombscargle is deprecated and
    will be removed in v1.19.0. Furthermore, some arguments will become keyword
    only.
  • For scipy.stats.anderson, the tuple-unpacking behavior of the return object
    and attributes critical_values, significance_level, and
    fit_result are deprecated. Use the new method parameter to avoid the
    deprecation warning. Beginning in SciPy 1.19.0, these features will
    no longer be available, and the object returned will have attributes
    statistic and pvalue.
  • For scipy.stats.anderson_ksamp, the midrank parameter is deprecated
    and the new variant parameter should be preferred. This also means that
    the presence of the critical_values return array is deprecated.

Expired deprecations

  • scipy.stats.find_repeats has been removed. Please use
    numpy.unique/numpy.unique_counts instead.
  • scipy.linalg functions for Toeplitz matrices no longer ravel n-d input
    arguments; instead, multidimensional input is treated as a batch.
  • The seed and rand functions from scipy.linalg.interpolative have
    been removed. Use the rng argument instead.
  • Complex inputs to scipy.spatial.distance.cosine and
    scipy.spatial.distance.correlation now raise an error.
  • Support for object arrays and longdoubles has been removed from
    scipy.signal.correlate, scipy.signal.convolve, scipy.signal.lfilter,
    and scipy.signal.sosfilt.
  • kulczynski1 and sokalmichener have been removed from
    scipy.spatial.distance.
  • kron has been removed from scipy.linalg. Please use numpy.kron.
  • Accidentally exposed functions have been removed from
    scipy.interpolate.interpnd.
  • The random_state and permutation arguments of
    scipy.stats.ttest_ind have been removed.
  • sph_harm, clpmn, lpn, and lpmn have been removed from
    scipy.special.

Backwards incompatible changes

  • The resulting shapes for transform.Rotation.from_euler /
    from_davenport have changed to make them consistent with broadcasting
    rules. Angle inputs to Euler angles must now strictly match the number of
    provided axes in the last dimension. The resulting Rotation has the shape
    np.atleast_1d(angles).shape[:-1]. Angle inputs to Davenport angles must
    also match the number of axes in the last dimension. The resulting Rotation
    has the shape np.broadcast_shapes(np.atleast_2d(axes).shape[:-2], np.atleast_1d(angles).shape[:-1]).

Other changes

  • The version of the Boost Math library leveraged by SciPy has been
    increased from 1.88.0 to 1.89.0.

  • On POSIX operating systems, SciPy will now use the 'forkserver'
    multiprocessing context on Python 3.13 and older for workers=<an-int>
    calls if the user hasn't configured a default method themselves. This follows
    the default behavior on Python 3.14.

  • Initial support for 64-bit integer (ILP64) BLAS and LAPACK libraries has been
    added. To enable it, build SciPy with -Duse-ilp64=true meson option, and make
    sure to have a LAPACK library which exposes both LP64 and ILP64 symbols.
    Currently supported LAPACK libraries are MKL and Apple Accelerate. Note that:

    • the ILP64 support is optional, and is in addition to the always-available
      LP64 interface;
    • at runtime, you can select the ILP64 variants via the
      get_{blas,lapack}_funcs functions:
      scipy.linalg.lapack.get_lapack_funcs(..., use_ilp64="preferred") selects
      the ILP64 variant if available and LP64 variant otherwise;
    • cython_blas and cython_lapack modules always contain the LP64
      routines for ABI compatibility.

Please report any issues with ILP64 you encounter.

Authors

  • Name (commits)
  • h-vetinari (3)
  • Joshua Alexander (1) +
  • Amit Aronovitch (1) +
  • Ayush Baranwal (1) +
  • Cristrian Batrin (1) +
  • Marco Berzborn (1) +
  • Ole Bialas (1) +
  • Om Biradar (1) +
  • Florian Bourgey (2)
  • Jake Bowhay (103)
  • Matteo Brivio (1) +
  • Dietrich Brunn (34)
  • Johannes Buchner (2) +
  • Evgeni Burovski (292)
  • Nicholas Carlini (1) +
  • Luca Cerina (1) +
  • Christine P. Chai (35)
  • Saransh Chopra (1)
  • Lucas Colley (121)
  • Björn Ingvar Dahlgren (2) +
  • Sumit Das (1) +
  • Hans Dembinski (1)
  • John M Dusel (1) +
  • DWesl (4)
  • Pieter Eendebak (6)
  • Kian Eliasi (2)
  • Rob Falck (1)
  • Abdullah Fayed (3) +
  • Emmanuel Ferdman (2) +
  • Filipe Laíns (1) +
  • Daniel Fremont (1) +
  • Neil Girdhar (1)
  • Ilan Gold (35)
  • Nathan Goldbaum (3) +
  • Ralf Gommers (124)
  • Nicolas Guidotti (1) +
  • Geoffrey Gunter (1) +
  • Matt Haberland (183)
  • Joren Hammudoglu (60)
  • Jacob Hass (2) +
  • Nick Hodgskin (1) +
  • Stephen Huan (1) +
  • Guido Imperiale (41)
  • Gert-Ludwig Ingold (1)
  • Jaime Rodríguez-Guerra (2) +
  • Jan Möseritz-Schmidt (2) +
  • JBlitzar (1) +
  • Adam Jones (2)
  • Dustin Kenefake (1) +
  • Robert Kern (3)
  • Gleb Khmyznikov (1) +
  • Daniil Kiktenko (1) +
  • Pascal Klein (2) +
  • kleiter (1) +
  • Oliver Kovacs (1) +
  • Koven (1) +
  • Abhishek Kumar (2) +
  • Arthur Lacote (2) +
  • Eric Larson (7)
  • Mouad Leachouri (1) +
  • Tristan Leclercq (1) +
  • Antony Lee (5)
  • Jesse Livezey (8)
  • Philip Loche (1)
  • Yuxi Long (4) +
  • Christian Lorentzen (1)
  • Joshua Markovic (1) +
  • Gabryel Mason-Williams (1) +
  • mcdigman (1) +
  • Rafael Menezes (1) +
  • Stefano Miccoli (1) +
  • Michał Górny (2)
  • Jost Migenda (7) +
  • Suriyaa MM (1) +
  • Andrew Nelson (72)
  • newyork_loki (2) +
  • Nick ODell (34)
  • Dimitri Papadopoulos Orfanos (2)
  • Drew Parsons (1)
  • Gilles Peiffer (3) +
  • Matti Picus (1)
  • Jonas Pleyer (2) +
  • Ilhan Polat (119)
  • Akshay Priyadarshi (2) +
  • Mohammed Abdul Rahman (1) +
  • Daniele Raimondi (2) +
  • Ritesh Rana (1) +
  • Adrian Raso (1) +
  • Dan Raviv (1) +
  • Tyler Reddy (136)
  • Lucas Roberts (4)
  • Bernard Roesler (1) +
  • Mikhail Ryazanov (27)
  • Daniel Schmitz (25)
  • Martin Schuck (25)
  • Dan Schult (33)
  • Mugunthan Selvanayagam (1) +
  • Scott Shambaugh (14)
  • Rodrigo Silva (1) +
  • Samaresh Kumar Singh (8) +
  • Kartik Sirohi (1) +
  • Albert Steppi (179)
  • Matthias Straka (1) +
  • Theo Teske (1) +
  • Noam Teyssier (1) +
  • tommie979 (1) +
  • Christian Veenhuis (1)
  • Pierre Veron (1) +
  • Shuhei Watanabe (1) +
  • Warren Weckesser (25)
  • WhimsyHippo (7) +
  • Rory Yorke (2)
  • Will Zhang (1) +
  • Eric Zitong Zhou (1)
  • Tingwei Zhu (1) +
  • Zhenyu Zhu (1) +
  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (38)

A total of 117 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.

Complete issue list, PR list, and release asset hashes are available in the associated README.txt.

v1.16.3: SciPy 1.16.3

Compare Source

SciPy 1.16.3 Release Notes

SciPy 1.16.3 is a bug-fix release with no new features compared to 1.16.2.

Authors

  • Name (commits)
  • ChrisAB (1) +
  • Lucas Colley (1)
  • Ralf Gommers (3)
  • Matt Haberland (8)
  • Nick ODell (2)
  • Ilhan Polat (1)
  • Tyler Reddy (28)
  • Lucas Roberts (2)

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.

The full issue and pull request lists, and the release asset hashes are available
in the associated README.txt file.

v1.16.2: SciPy 1.16.2

Compare Source

SciPy 1.16.2 Release Notes

SciPy 1.16.2 is a bug-fix release with no new features
compared to 1.16.1. This is the first stable release of
SciPy to provide Windows on ARM wheels on PyPI.

Authors

  • Name (commits)
  • Dietrich Brunn (1)
  • Ralf Gommers (6)
  • Adam Jones (1)
  • Gleb Khmyznikov (1) +
  • Jost Migenda (1) +
  • newyork_loki (1)
  • Nick ODell (3)
  • Dimitri Papadopoulos Orfanos (1)
  • Ilhan Polat (2)
  • Tyler Reddy (26)
  • Mugunthan Selvanayagam (1) +
  • Shuhei Watanabe (1) +

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.

The full issue and pull request lists, and the release asset hashes are available
in the associated README.txt file.

v1.16.1: SciPy 1.16.1

Compare Source

SciPy 1.16.1 Release Notes

SciPy 1.16.1 is a bug-fix release that adds support for Python 3.14.0rc1,
including PyPI wheels.

Authors

  • Name (commits)
  • Evgeni Burovski (1)
  • Rob Falck (1)
  • Ralf Gommers (7)
  • Geoffrey Gunter (1) +
  • Matt Haberland (2)
  • Joren Hammudoglu (1)
  • Andrew Nelson (2)
  • newyork_loki (1) +
  • Ilhan Polat (1)
  • Tyler Reddy (25)
  • Daniel Schmitz (1)
  • Dan Schult (2)

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.

The full issue and pull request lists, and the release asset hashes are available
in the associated README.txt file.

v1.16.0: SciPy 1.16.0

Compare Source

SciPy 1.16.0 Release Notes

SciPy 1.16.0 is the culmination of 6 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with python -Wd and check for DeprecationWarning s).
Our development attention will now shift to bug-fix releases on the
1.16.x branch, and on adding new features on the main branch.

This release requires Python 3.11-3.13 and NumPy 1.25.2 or greater.

Highlights of this release

  • Improved experimental support for the Python array API standard, including
    new support in scipy.signal, and additional support in scipy.stats and
    scipy.special. Improved support for JAX and Dask backends has been added,
    with notable support in scipy.cluster.hierarchy, many functions in
    scipy.special, and many of the trimmed statistics functions.
  • scipy.optimize now uses the new Python implementation from the
    PRIMA package for COBYLA. The PRIMA implementation fixes many bugs
    in the old Fortran 77 implementation with a better performance on average.
  • scipy.sparse.coo_array now supports n-D arrays with reshaping, arithmetic and
    reduction operations like sum/mean/min/max. No n-D indexing or
    scipy.sparse.random_array support yet.
  • Updated guide and tools for migration from sparse matrices to sparse arrays.
  • Nearly all functions in the scipy.linalg namespace that accept array
    arguments now support N-dimensional arrays to be processed as a batch.
  • Two new scipy.signal functions, scipy.signal.firwin_2d and
    scipy.signal.closest_STFT_dual_window, for creation of a 2-D FIR filter and
    scipy.signal.ShortTimeFFT dual window calculation, respectively.
  • A new class, scipy.spatial.transform.RigidTransform, provides functionality
    to convert between different representations of rigid transforms in 3-D
    space.
  • A new function scipy.ndimage.vectorized_filter for generic filters that
    take advantage of a vectorized Python callable was added.

New features

scipy.io improvements

  • scipy.io.savemat now provides informative warnings for invalid field names.
  • scipy.io.mmread now provides a clearer error message when provided with
    a source file path that does not exist.
  • scipy.io.wavfile.read can now read non-seekable files.

scipy.integrate improvements

  • The error estimate of scipy.integrate.tanhsinh was improved.

scipy.interpolate improvements

  • Batch support was added to scipy.interpolate.make_smoothing_spline.

scipy.linalg improvements

  • Nearly all functions in the scipy.linalg namespace that accept array
    arguments now support N-dimensional arrays to be processed as a batch.
    See linalg_batch for details.
  • scipy.linalg.sqrtm is rewritten in C and its performance is improved. It
    also tries harder to return real-valued results for real-valued inputs if
    possible. See the function docstring for more details. In this version the
    input argument disp and the optional output argument errest are
    deprecated and will be removed four versions later. Similarly, after
    changing the underlying algorithm to recursion, the blocksize keyword
    argument has no effect and will be removed two versions later.
  • Wrappers for ?stevd, ?langb, ?sytri, ?hetri and
    ?gbcon were added to scipy.linalg.lapack.
  • The default driver of scipy.linalg.eigh_tridiagonal was improved.
  • scipy.linalg.solve can now estimate the reciprocal condition number and
    the matrix norm calculation is more efficient.

scipy.ndimage improvements

  • A new function scipy.ndimage.vectorized_filter for generic filters that
    take advantage of a vectorized Python callable was added.
  • scipy.ndimage.rotate has improved performance, especially on ARM platforms.

scipy.optimize improvements

  • COBYLA was updated to use the new Python implementation from the
    PRIMApackage.
    The PRIMA implementation fixes many bugs
    in the old Fortran 77 implementation. In addition, it results in fewer function evaluations on average
    but it depends on the problem and for some
    problems it can result in more function evaluations or a less optimal
    result. For those cases the user can try modifying the initial and final
    trust region radii given by rhobeg and tol respectively. A larger
    rhobeg can help the algorithm take bigger steps initially, while a
    smaller tol can help it continue and find a better solution.
    For more information, see the PRIMA documentation.
  • Several of the scipy.optimize.minimize methods, and the
    scipy.optimize.least_squares function, have been given a workers
    keyword. This allows parallelization of some calculations via a map-like
    callable, such as multiprocessing.Pool. These parallelization
    opportunities typically occur during numerical differentiation. This can
    greatly speed up minimization when the objective function is expensive to
    calculate.
  • The lm method of scipy.optimize.least_squares can now accept
    3-point and cs for the jac keyword.
  • The SLSQP Fortran 77 code was ported to C. When this method is used now the
    constraint multipliers are exposed to the user through the multiplier
    keyword of the returned scipy.optimize.OptimizeResult object.
  • NNLS code has been corrected and rewritten in C to address the performance
    regression introduced in 1.15.x
  • scipy.optimize.root now warns for invalid inner parameters when using the
    newton_krylov method
  • The return value of minimization with method='L-BFGS-B' now has
    a faster hess_inv.todense() implementation. Time complexity has improved
    from cubic to quadratic.
  • scipy.optimize.least_squares has a new callback argument that is applicable
    to the trf and dogbox methods. callback may be used to track
    optimization results at each step or to provide custom conditions for
    stopping.

scipy.signal improvements

  • A new function scipy.signal.firwin_2d for the creation of a 2-D FIR Filter
    using the 1-D window method was added.
  • scipy.signal.cspline1d_eval and scipy.signal.qspline1d_eval now provide
    an informative error on empty input rather than hitting the recursion limit.
  • A new function scipy.signal.closest_STFT_dual_window to calculate the
    scipy.signal.ShortTimeFFT dual window of a given window closest to a
    desired dual window.
  • A new classmethod scipy.signal.ShortTimeFFT.from_win_equals_dual to
    create a scipy.signal.ShortTimeFFT instance where the window and its dual
    are equal up to a scaling factor. It allows to create short-time Fourier
    transforms which are unitary mappings.
  • The performance of scipy.signal.convolve2d was improved.

scipy.sparse improvements

  • scipy.sparse.coo_array now supports n-D arrays using binary and reduction
    operations.
  • Faster operations between two DIA arrays/matrices for: add, sub, multiply,
    matmul.
  • scipy.sparse.csgraph.dijkstra shortest_path is more efficient.
  • scipy.sparse.csgraph.yen has performance improvements.
  • Support for lazy loading of sparse.csgraph and sparse.linalg was
    added.

scipy.spatial improvements

  • A new class, scipy.spatial.transform.RigidTransform, provides functionality
    to convert between different representations of rigid transforms in 3-D
    space, its application to vectors and transform composition.
    It follows the same design approach as scipy.spatial.transform.Rotation.
  • scipy.spatial.transform.Rotation now has an appropriate __repr__ method,
    and improved performance for its scipy.spatial.transform.Rotation.apply
    method.

scipy.stats improvements

  • A new function scipy.stats.quantile, an array API compatible function for
    quantile estimation, was added.
  • scipy.stats.make_distribution was extended to work with existing discrete
    distributions and to facilitate the creation of custom distributions in the
    new random variable infrastructure.
  • A new distribution, `scipy.s

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.11.2 Update dependency scipy to v1.11.3 Oct 2, 2023
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.11.3 Update dependency scipy to v1.11.4 Nov 20, 2023
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.11.4 Update dependency scipy to v1.12.0 Jan 22, 2024
@eagleoflqj
eagleoflqj force-pushed the renovate/scipy-1.x branch from d6c927e to 1e31a4b Compare April 8, 2024 18:52
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.12.0 Update dependency scipy to v1.13.0 Apr 8, 2024
@eagleoflqj
eagleoflqj force-pushed the renovate/scipy-1.x branch from 1e31a4b to 1f735ca Compare May 27, 2024 18:52
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.13.0 Update dependency scipy to v1.13.1 May 27, 2024
@eagleoflqj
eagleoflqj force-pushed the renovate/scipy-1.x branch from 1f735ca to ceed4e6 Compare July 1, 2024 18:52
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.13.1 Update dependency scipy to v1.14.0 Jul 1, 2024
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.14.0 Update dependency scipy to v1.14.1 Aug 26, 2024
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.14.1 Update dependency scipy to v1.15.0 Jan 6, 2025
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.15.0 Update dependency scipy to v1.15.1 Jan 13, 2025
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.15.1 Update dependency scipy to v1.15.2 Feb 17, 2025
@eagleoflqj
eagleoflqj force-pushed the renovate/scipy-1.x branch from 0446169 to 01003a9 Compare May 12, 2025 18:56
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.15.2 Update dependency scipy to v1.15.3 May 12, 2025
@eagleoflqj
eagleoflqj force-pushed the renovate/scipy-1.x branch from 01003a9 to 6ea1b78 Compare June 23, 2025 18:58
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.15.3 Update dependency scipy to v1.16.0 Jun 23, 2025
@eagleoflqj
eagleoflqj force-pushed the renovate/scipy-1.x branch from 6ea1b78 to c03c64a Compare July 28, 2025 19:01
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.16.0 Update dependency scipy to v1.16.1 Jul 28, 2025
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.16.1 Update dependency scipy to v1.16.2 Sep 15, 2025
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.16.2 Update dependency scipy to v1.16.3 Nov 3, 2025
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.16.3 Update dependency scipy to v1.17.0 Jan 12, 2026
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.17.0 Update dependency scipy to v1.17.1 Feb 23, 2026
@eagleoflqj eagleoflqj changed the title Update dependency scipy to v1.17.1 chore(deps): update dependency scipy to v1.17.1 Apr 6, 2026
@eagleoflqj
eagleoflqj force-pushed the renovate/scipy-1.x branch from 73ef230 to 7547a26 Compare June 22, 2026 21:26
@eagleoflqj eagleoflqj changed the title chore(deps): update dependency scipy to v1.17.1 chore(deps): update dependency scipy to v1.18.0 Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants