unstale

pypi / scipy

scipy

What changed in scipy 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

46 breaking20 deprecations67 new APIs and options18 performance17 behavior and defaults1 tooling3 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

scipy 1172 changes

Breaking changes 46

  • The minimum required GCC toolchain version has increased to 10.3.0.

    1.18.1release notes

  • SciPy 1.18.0 requires NumPy 2.0.0 or greater.

    1.18.0release notes

  • SciPy 1.18.0 requires Python 3.12–3.14.

    1.18.0release notes

  • bandwidth supports batching for inputs with at least two dimensions; for 2D input its return type changes from (int, int) to (np.int64, np.int64).

    1.18.0release notes

  • The second return value's type changes from bool to NDArray[np.bool].

    1.18.0release notes

  • Eigenvalue outputs are no longer guaranteed to be Fortran-ordered; ensure the desired ordering manually when array strides matter.

    1.18.0release notes

  • The disp parameter has been removed.

    1.18.0release notes

  • Residual behavior changes: gelsy or underdetermined/square systems return empty residuals; gesld/gelss overdetermined systems return residuals, with NaN for slices not full column rank.

    1.18.0release notes

  • The disp parameter has been removed.

    1.18.0release notes

  • sqrtm adds ILP64 support; its disp parameter has been removed.

    1.18.0release notes

  • The blocksize parameter has been removed.

    1.18.0release notes

  • The disp parameter has been removed.

    1.18.0release notes

  • The disp parameter has been removed.

    1.18.0release notes

  • The iprint parameter has been removed.

    1.18.0release notes

  • The deprecated atol argument has been removed.

    1.18.0release notes

  • Improved numerical stability and efficiency; raises ValueError when a has leading zeros or when the filter is unstable due to a pole at z = 1.

    1.18.0release notes

  • Supports batching k, n, and p; the BinomTestResult k and n attribute types change from int to np.float64.

    1.18.0release notes

  • With sparse=True, the second output is now a sparse array rather than a sparse matrix and can represent counts for more than two input sequences.

    1.18.0release notes

  • Returns NaNs when category-probability rows do not sum to unity; multinomial.rvs raises an error in those cases instead of adjusting the final probability.

    1.18.0release notes

  • Returns a tuple of arrays instead of a single ndarray.

    1.18.0release notes

  • Output is now always floating point, with a result dtype determined by the input and a Python float.

    1.18.0release notes

  • SciPy 1.17.0 requires NumPy 1.26.4 or greater.

    1.17.0release notes

  • SciPy 1.17.0 requires Python 3.11–3.14.

    1.17.0release notes

  • The mutable instance attribute is now a read-only property.

    1.17.0release notes

  • The mutable grid instance attribute is now a read-only property.

    1.17.0release notes

  • The mutable values instance attribute is now a read-only property.

    1.17.0release notes

  • In SciPy 1.19.0, multidimensional inputs will be treated as a batch instead of being raveled.

    1.17.0release notes

  • The rand function has been removed; use the rng argument instead.

    1.17.0release notes

  • The seed function has been removed; use the rng argument instead.

    1.17.0release notes

  • The function has been removed; use numpy.kron.

    1.17.0release notes

  • Complex inputs now raise an error.

    1.17.0release notes

  • Complex inputs now raise an error.

    1.17.0release notes

  • The distance function has been removed.

    1.17.0release notes

  • The distance function has been removed.

    1.17.0release notes

  • Spherical interpolation now extrapolates when t is outside [0, 1].

    1.17.0release notes

  • Output shapes now follow broadcasting rules, and angle inputs must match the number of axes in the last dimension.

    1.17.0release notes

  • Output shapes now follow broadcasting rules, and angle inputs must strictly match the number of axes in the last dimension.

    1.17.0release notes

  • The function has been removed.

    1.17.0release notes

  • The function has been removed.

    1.17.0release notes

  • The function has been removed.

    1.17.0release notes

  • The function has been removed.

    1.17.0release notes

  • The new variant parameter selects among three statistic variants, replacing the two-way midrank toggle.

    1.17.0release notes

  • The function has been removed; use numpy.unique or numpy.unique_counts instead.

    1.17.0release notes

  • The random_state and permutation arguments have been removed.

    1.17.0release notes

  • The random_state and permutation arguments have been removed.

    1.17.0release notes

  • The function gained axis, nan_policy, and keepdims parameters and now returns a NumPy scalar instead of a 0D array in the described case.

    1.17.0release notes

Deprecations 20

  • Calling rmatvec or matvec on column vectors now issues a FutureWarning; use rmatmat or matmat for equivalent behavior and batch dimensions.

    1.18.0release notes

  • The unintentionally public function has been deprecated.

    1.18.0release notes

  • Deprecated because it was deemed not practically useful.

    1.18.0release notes

  • Deprecated because it was deemed not practically useful.

    1.18.0release notes

  • Deprecated because it was deemed not practically useful.

    1.18.0release notes

  • Setting spmatrix=True is deprecated for mmio, FFM, hb, and matlab/_mio readers, including when it is the default.

    1.18.0release notes

  • Using non-LAPACK dtypes is deprecated; after the deprecations expire, linear algebra functions will allow integers (upcast to float) and single/double precision float/complex dtypes.

    1.18.0release notes

  • Passing lwork is deprecated; remove it because the function computes the optimal work-array size automatically.

    1.18.0release notes

  • When no inputs are sparse, returning spmatrix is deprecated; the return type will change to sparray. Include a sparse input to control the output type.

    1.18.0release notes

  • When no inputs are sparse, returning spmatrix is deprecated; the return type will change to sparray. Include a sparse input to control the output type.

    1.18.0release notes

  • When no inputs are sparse, returning spmatrix is deprecated; the return type will change to sparray. Include a sparse input to control the output type.

    1.18.0release notes

  • Deprecated in favor of other superior functions.

    1.18.0release notes

  • Deprecated in favor of other superior functions.

    1.18.0release notes

  • Deprecated in favor of other superior functions.

    1.18.0release notes

  • Deprecated because Delaunay provides the functionality more conveniently.

    1.18.0release notes

  • The module is deprecated in 1.17.0 and will be removed in 1.19.0; users are directed to odrpack.

    1.17.0release notes

  • The precenter argument is deprecated and will be removed in SciPy 1.19.0; some arguments will also become keyword-only.

    1.17.0release notes

  • Tuple unpacking and the critical_values, significance_level, and fit_result attributes are deprecated; the 1.19.0 result will expose statistic and pvalue.

    1.17.0release notes

  • The presence of the critical_values return array is deprecated.

    1.17.0release notes

  • The midrank parameter is deprecated; use variant instead.

    1.17.0release notes

New APIs and options 67

  • Machinery is provided for downstream cython_lapack users to handle LP64/ILP64 backend builds.

    1.18.0release notes

  • eigvals adds the overwrite_b keyword argument for consistency with similar linalg functions.

    1.18.0release notes

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

    1.18.0release notes

  • Supports passing kwargs to the function being integrated.

    1.18.0release notes

  • Supports passing kwargs to the function being integrated.

    1.18.0release notes

  • Functions now support passing kwargs to the callable function.

    1.18.0release notes

  • Adds Whittaker-Henderson smoothing for discrete signals, with smoothness penalties and automatic penalty-strength selection using the REML criterion.

    1.18.0release notes

  • LinearOperator supports n-dimensional input and adds an rdot method.

    1.18.0release notes

  • Adds a method argument.

    1.18.0release notes

  • Adds support for the nan_policy keyword argument.

    1.18.0release notes

  • Adds support for the nan_policy keyword argument.

    1.18.0release notes

  • Now accepts an axis argument.

    1.18.0release notes

  • Adds computation of population L-moments.

    1.18.0release notes

  • Adds a vectorized function reproducing much of the functionality of plotting_positions, percentileofscore, ecdf.cdf, and cumfreq.

    1.18.0release notes

  • Adds nan_policy, axis, and keepdims arguments.

    1.18.0release notes

  • Adds nan_policy, axis, and keepdims arguments.

    1.18.0release notes

  • Adds nan_policy, axis, and keepdims arguments.

    1.18.0release notes

  • The result object adds zstatistic.

    1.18.0release notes

  • Adds support for the nan_policy keyword argument.

    1.18.0release notes

  • Adds axis and keepdims arguments.

    1.18.0release notes

  • Adds axis and keepdims arguments.

    1.18.0release notes

  • Adds support for the nan_policy keyword argument.

    1.18.0release notes

  • Adds support for the nan_policy keyword argument.

    1.18.0release notes

  • Adds support for the nan_policy keyword argument.

    1.18.0release notes

  • A new argument to the __call__ methods of LinearNDInterpolator and CloughTocher2dInterpolator lets users increase QHull simplex assignment tolerance to help avoid holes in some interpolation problems.

    1.18.0release notes

  • All sparse array and matrix formats now support matrix_transpose and .mT.

    1.18.0release notes

  • A private experimental build option allows building SciPy from source without a Fortran compiler.

    1.18.0release notes

  • AAA has gained an axis parameter and improved numerical stability.

    1.17.0release notes

  • The interpolator supports multidimensional, batched inputs and has an axis parameter to select the interpolation axis.

    1.17.0release notes

  • The new bc_type argument selects spline-fitting boundary conditions: not-a-knot (default) or periodic.

    1.17.0release notes

  • The new bc_type argument selects spline-fitting boundary conditions: not-a-knot (default) or periodic.

    1.17.0release notes

  • The new bc_type argument selects spline-fitting boundary conditions: not-a-knot (default) or periodic.

    1.17.0release notes

  • A new derivative method constructs a spline representing a partial derivative of the given spline.

    1.17.0release notes

  • An array API-compatible backend improves support for GPU arrays.

    1.17.0release notes

  • The new assume_a keyword bypasses matrix-structure detection when the structure is known.

    1.17.0release notes

  • The lower keyword selects the upper or lower triangle of symmetric inputs.

    1.17.0release notes

  • SLSQP callbacks can opt into the new callback interface by accepting the intermediate_result keyword argument.

    1.17.0release notes

  • trust-exact accepts a solver-specific subproblem_maxiter option to help convergence with ill-conditioned Hessians.

    1.17.0release notes

  • Window names can use _periodic and _symmetric suffixes to select window periodicity, overriding fftbin.

    1.17.0release notes

  • The new axes keyword specifies the axes used to calculate the two-dimensional analytic signal.

    1.17.0release notes

  • The new update method accepts a dict, dict.items()-like iterable, or another dok_array and validates index-tuple keys.

    1.17.0release notes

  • A sparse construction function for expanding dimensions has been added.

    1.17.0release notes

  • The function now accepts an rng parameter.

    1.17.0release notes

  • The function now accepts an rng parameter.

    1.17.0release notes

  • A restarted Krylov method for evaluating y = f(tA) b has been added.

    1.17.0release notes

  • A sparse construction function for permuting dimensions has been added.

    1.17.0release notes

  • A sparse construction function for swapping axes has been added.

    1.17.0release notes

  • RigidTransform now supports N-D arrays and provides a shape property; its identity constructor accepts shape.

    1.17.0release notes

  • The mean function now accepts an axis argument.

    1.17.0release notes

  • Rotation now supports N-D arrays and provides a shape property; its identity constructor and random constructor also accept shape.

    1.17.0release notes

  • The constructor has gained an optional scalar_first parameter.

    1.17.0release notes

  • Rotation now provides a __setitem__ method.

    1.17.0release notes

  • The suppress_warnings parameter enables suppression of gimbal lock warnings.

    1.17.0release notes

  • The suppress_warnings parameter enables suppression of gimbal lock warnings.

    1.17.0release notes

  • The assume_valid argument enables performance improvements when callers can guarantee valid matrix inputs.

    1.17.0release notes

  • The mean function now accepts an axis argument.

    1.17.0release notes

  • The new method parameter computes p-values by interpolation or Monte Carlo simulation; it must be passed explicitly to add pvalue and avoid a warning about upcoming result-attribute removal.

    1.17.0release notes

  • A Logistic distribution for modeling logistic random variables has been added.

    1.17.0release notes

  • The matrix t distribution has been added, with pdf, logpdf, and rvs methods.

    1.17.0release notes

  • The function has gained a keepdims parameter.

    1.17.0release notes

  • The distribution has gained a marginal method.

    1.17.0release notes

  • The distribution has gained a marginal method.

    1.17.0release notes

  • The method argument adds round_inward, round_outward, and round_neareast for trimming and winsorizing data.

    1.17.0release notes

  • A weights argument specifies frequency weights.

    1.17.0release notes

  • An array API-compatible substitute for spearmanr has been added.

    1.17.0release notes

  • The function has gained nan_policy and keepdims parameters.

    1.17.0release notes

  • The Meson -Duse-ilp64=true option enables optional ILP64 BLAS and LAPACK support when building SciPy.

    1.17.0release notes

Performance 18

  • cholesky leverages symmetry properties for performance, especially for real matrices, and its batching loop is now implemented in C.

    1.18.0release notes

  • det is rewritten in C++ with batching support in compiled code.

    1.18.0release notes

  • The batching loop has moved to C, providing a substantial speedup for batched input.

    1.18.0release notes

  • expm has improved performance and adds ILP64 support.

    1.18.0release notes

  • The batching loop has moved to C, providing a substantial speedup for batched input.

    1.18.0release notes

  • lu is rewritten in C++ with batching support in compiled code.

    1.18.0release notes

  • The batching loop has moved to C, providing a substantial speedup for batched input.

    1.18.0release notes

  • Performance has improved for batched inputs.

    1.18.0release notes

  • The batching loop has moved to C, providing a substantial speedup for batched input.

    1.18.0release notes

  • The function has improved performance and array API support.

    1.17.0release notes

  • The integration routine has been ported from Fortran77 to C.

    1.17.0release notes

  • The integration routine has been ported from Fortran77 to C.

    1.17.0release notes

  • The integration routine has been ported from Fortran77 to C.

    1.17.0release notes

  • An empty integration interval now uses a fast path that returns 0.

    1.17.0release notes

  • The integration routine has been ported from Fortran77 to C.

    1.17.0release notes

  • The integration routine has been ported from Fortran77 to C.

    1.17.0release notes

  • Performance of cubic and quintic modes has improved.

    1.17.0release notes

  • Batched solve performance has improved for certain matrix structures.

    1.17.0release notes

Behavior and default changes 17

  • SciPy's internal FFT backend switches from pocketfft to ducc0.fft; cached plans over 1MB are no longer cached, mainly affecting huge 1D transforms of prime and near-prime sizes.

    1.18.0release notes

  • Can now return sparse arrays rather than sparse matrices.

    1.18.0release notes

  • The COBYQA method can now be called concurrently by multiple threads instead of serializing calls.

    1.18.0release notes

  • Rotation and RigidTransform can now be composed directly by multiplication, automatically promoting Rotation.

    1.18.0release notes

  • minres now supports complex Hermitian matrices.

    1.18.0release notes

  • Now supports N-dimensional input.

    1.18.0release notes

  • Now supports N-dimensional input.

    1.18.0release notes

  • Now supports N-dimensional input.

    1.18.0release notes

  • The Fortran77 library has been ported to C, enabling external random generators such as NumPy PRNGs for reproducible runs.

    1.17.0release notes

  • COO arrays now support indexing, including slices, arrays, newaxis, and Ellipsis in 1D, 2D, and nD.

    1.17.0release notes

  • On POSIX with Python 3.13 and older, workers=<an-int> calls now use the forkserver multiprocessing context unless the user configured a default method.

    1.17.0release notes

  • The function now natively supports batched inputs.

    1.17.0release notes

  • The routine detects matrix structure, selects a suitable inversion routine, and warns about ill-conditioned inputs; batched performance also improves.

    1.17.0release notes

  • The default dtype behavior is scheduled to change in SciPy 1.19.0.

    1.17.0release notes

  • The default dtype behavior is scheduled to change in SciPy 1.19.0.

    1.17.0release notes

  • The sparse kron function now supports nD inputs.

    1.17.0release notes

  • Negative exponent shape parameters are now accepted, allowing truncpareto to model more general power laws.

    1.17.0release notes

Tooling 1

  • SciPy now has a Pixi package definition for building from source inside Pixi workspaces.

    1.18.0release notes

Fixes and other changes 3

  • Binaries are available on PyPI for Python 3.15.

    1.18.1release notes

  • With keep_feasible constraints, the objective is no longer called with an x array that would make the constraints infeasible.

    1.18.0release notes

  • The Fortran77 library has been ported to C with PRNG enhancements and other improvements.

    1.17.0release notes