# SciPy changelog > Fundamental algorithms for scientific computing in Python. - Vendor: SciPy - Category: Frameworks & Libraries - Official site: https://scipy.org - Tracked by: What's New (https://whatsnew.fyi/product/scipy) - Harvested from: GitHub (scipy/scipy) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v1.18.0 — SciPy 1.18.0 - Date: 2026-06-19 - Version: v1.18.0 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.18.0 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.18.0 - **changed** — SciPy's internal FFT backend switched from pocketfft to ducc0.fft, with significantly reduced storage requirements for internally cached plans - **changed** — FITPACK Fortran code has been ported to C in scipy.interpolate - **added** — LinearNDInterpolator and CloughTocher2dInterpolator now support simplex_tolerance argument to increase QHull simplex assignment tolerance - **added** — scipy.differentiate.derivative now supports passing kwargs to the function whose derivative is desired - **added** — Support for three different build modes for BLAS and LAPACK: LP64-only, ILP64-only, and ILP64 for everything except cython_blas/cython_lapack/linalg.blas/linalg.lapack - **added** — Machinery provided for downstream cython_lapack users to gracefully handle LP64/ILP64 backend builds - **added** — overwrite_b keyword argument added to scipy.linalg.eigvals for consistency with other similar linalg functions - **changed** — scipy.linalg.cholesky now leverages symmetry properties for performance improvements and batching loop moved to C implementation - **changed** — scipy.linalg.lu and scipy.linalg.det have been rewritten in C++ with batching support in the compiled code - **added** — ILP64 support added to scipy.linalg.expm and scipy.linalg.sqrtm - **changed** — Batching loops of scipy.linalg.qr, scipy.linalg.eig, scipy.linalg.lstsq, and scipy.linalg.svd moved to C for substantial speedup with batched input - **changed** — Performance of scipy.linalg.expm has been improved - **changed** — Performance of scipy.linalg.solve improved for batched inputs - **changed** — scipy.linalg.bandwidth now supports batching for greater than or equal to 2 dimensional input - **changed** — trust_constr method for minimize adjusted to avoid calling objective function with x arrays that result in infeasible keep_feasible constraints - **changed** — COBYQA method for minimize now supports concurrent calling by multiple threads - **added** — scipy.optimize.nnls and minimize methods SLSQP and L-BFGS-B now have support for ILP64 LAPACK - **added** — Functions in scipy.optimize.elementwise now support passing kwargs to the callable function - **added** — New scipy.signal.whittaker_henderson function implements Whittaker-Henderson smoothing of a discrete signal with automatic penalty selection via REML optimization 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.li _[Truncated at 4000 characters — full notes: https://github.com/scipy/scipy/releases/tag/v1.18.0]_ ### v1.18.0rc2 — SciPy 1.18.0rc2 - Date: 2026-06-09 - Version: v1.18.0rc2 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.18.0rc2 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.18.0rc2 - Labels: Pre-release - **changed** — SciPy's internal FFT backend has switched from pocketfft to ducc0.fft, which significantly reduces storage requirements for internally cached plans - **added** — Added simplex_tolerance argument to LinearNDInterpolator and CloughTocher2dInterpolator to increase QHull simplex assignment tolerance - **changed** — FITPACK Fortran code has been ported to C - **added** — scipy.differentiate.derivative now supports passing kwargs to the function whose derivative is desired - **added** — SciPy now supports three different build modes for BLAS and LAPACK: LP64-only, ILP64-only, and ILP64 for everything except cython_blas/cython_lapack/linalg.blas/linalg.lapack - **added** — Machinery is provided for downstream cython_lapack users to gracefully handle LP64/ILP64 backend builds - **added** — Added overwrite_b keyword argument to scipy.linalg.eigvals for consistency with other similar linalg functions - **changed** — scipy.linalg.cholesky now leverages symmetry properties for performance improvements and has batching loop moved to C implementation - **changed** — scipy.linalg.lu and scipy.linalg.det have been rewritten in C++ with batching support - **added** — Added ILP64 support to scipy.linalg.expm and scipy.linalg.sqrtm - **changed** — Batching loops of scipy.linalg.qr, scipy.linalg.eig, scipy.linalg.lstsq, and scipy.linalg.svd have been moved to C for substantial speedup - **changed** — Performance of scipy.linalg.expm has been improved - **changed** — Performance of scipy.linalg.solve has improved for batched inputs - **changed** — scipy.linalg.bandwidth now supports batching for greater than or equal to 2 dimensional input - **changed** — The trust_constr method for minimize was adjusted to not call the objective function with infeasible constraint x arrays marked as keep_feasible - **changed** — The COBYQA method for minimize now supports being called concurrently by multiple threads - **added** — scipy.optimize.nnls and minimize methods SLSQP and L-BFGS-B now have support for ILP64 LAPACK - **added** — Functions in scipy.optimize.elementwise now support passing kwargs to the callable function - **added** — New scipy.signal.whittaker_henderson implements Whittaker-Henderson smoothing of a discrete signal with different penalties and automatic selection via REML criterion - **changed** — lfilter_zi was refactored for improved numerical stability and efficiency, now raises ValueError if parameter a has leading zeros SciPy 1.18.0 Release Notes ===================== **note**: SciPy `1.18.0` is not released yet! 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 `sc _[Truncated at 4000 characters — full notes: https://github.com/scipy/scipy/releases/tag/v1.18.0rc2]_ ### v1.18.0rc1 — SciPy 1.18.0rc1 - Date: 2026-05-25 - Version: v1.18.0rc1 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.18.0rc1 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.18.0rc1 - Labels: Pre-release - **changed** — SciPy's internal FFT backend switched from pocketfft to ducc0.fft, significantly reducing storage requirements for internally cached plans - **added** — Added simplex_tolerance argument to LinearNDInterpolator and CloughTocher2dInterpolator to increase QHull simplex assignment tolerance - **changed** — FITPACK Fortran code has been ported to C - **added** — scipy.differentiate.derivative now supports passing kwargs to the function whose derivative is desired - **added** — Support for three different build modes for BLAS and LAPACK: LP64-only, ILP64-only, and ILP64 for everything except cython_blas/cython_lapack/linalg.blas/linalg.lapack - **added** — Added overwrite_b keyword argument to linalg.eigvals for consistency with other similar linalg functions - **changed** — linalg.cholesky now leverages symmetry properties for performance improvements and uses C implementation for batching loop - **changed** — scipy.linalg.lu and scipy.linalg.det have been rewritten in C++ with batching support in compiled code - **added** — Added ILP64 support to scipy.linalg.expm and scipy.linalg.sqrtm - **changed** — Batching loops of scipy.linalg.qr, scipy.linalg.eig, scipy.linalg.lstsq, and scipy.linalg.svd moved to C for substantial speedup with batched input - **changed** — Improved performance of scipy.linalg.expm - **changed** — Improved performance of scipy.linalg.solve for batched inputs - **changed** — trust_constr method for minimize now avoids calling the objective function with x arrays that result in infeasible keep_feasible constraints - **changed** — COBYQA method for minimize now supports concurrent calling by multiple threads - **added** — scipy.optimize.nnls and minimize methods SLSQP and L-BFGS-B now support ILP64 LAPACK when available - **added** — Functions in scipy.optimize.elementwise now support passing kwargs to the callable function - **added** — Added scipy.signal.whittaker_henderson for Whittaker-Henderson smoothing of discrete signals with automatic penalty selection via REML optimization - **changed** — lfilter_zi was refactored for improved numerical stability and efficiency - **added** — A large number of scipy.stats functions now support lazy arrays and JAX JIT - **added** — Array API support improved substantially with at least 21 functions gaining new support - **added** — 16 scipy.stats functions gained support for MArray input SciPy 1.18.0 Release Notes ==================== **note**: SciPy `1.18.0` is not released yet! 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 `scip _[Truncated at 4000 characters — full notes: https://github.com/scipy/scipy/releases/tag/v1.18.0rc1]_ ### v1.17.1 — SciPy 1.17.1 - Date: 2026-02-23 - Version: v1.17.1 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.17.1 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.17.1 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`](https://github.com/scipy/scipy/releases/download/v1.17.1/README.txt). ### v1.17.0 — SciPy 1.17.0 - Date: 2026-01-10 - Version: v1.17.0 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.17.0 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.17.0 - **changed** — Integration routines dopri5, dopri853, LSODA, vode, and zvode have been ported from Fortran77 to C - **added** — scipy.integrate.quad now has a fast path for returning 0 when the integration interval is empty - **added** — BDF, DOP853, RK23, RK45, OdeSolver, DenseOutput, ode, and complex_ode classes now support subscription for compatibility with scipy-stubs - **changed** — scipy.cluster.hierarchy.is_isomorphic has improved performance and array API support - **added** — scipy.interpolate.make_splrep, make_splprep, and generate_knots now accept a bc_type argument to control boundary conditions for spline fitting - **added** — scipy.interpolate.NdBSpline class now has a derivative method to construct a new spline representing a partial derivative - **changed** — scipy.interpolate.NdBSpline mutable instance attribute .c was changed into a read-only @property - **changed** — Performance of cubic and quintic modes of scipy.interpolate.RegularGridInterpolator has been improved - **changed** — scipy.interpolate.RegularGridInterpolator instance attributes .grid and .values were changed into read-only properties - **changed** — Numerical stability of scipy.interpolate.AAA has been improved - **added** — scipy.interpolate.AAA gained a new axis parameter - **added** — scipy.interpolate.FloaterHormannInterpolator added support for multidimensional, batched inputs and gained an axis parameter - **added** — RBFInterpolator gained an array API standard compatible backend with improved support for GPU arrays - **added** — AAA, *Interpolator, *Poly, and *Spline classes now support subscription for compatibility with scipy-stubs - **changed** — scipy.linalg.inv now detects the structure of its argument and selects an appropriate low-level matrix inversion routine with a new assume_a keyword - **added** — scipy.linalg.inv now has a lower keyword argument to select the upper or lower triangle of the input matrix for symmetric inputs - **changed** — scipy.linalg.inv emits a LinAlgWarning if it detects an ill-conditioned input - **changed** — scipy.linalg.fiedler now has native support for batched inputs - **added** — optimize.minimize with method='trust-exact' now accepts a solver-specific subproblem_maxiter option - **added** — Callback functions used by optimize.minimize with method='slsqp' can opt into the new callback interface by accepting an intermediate_result keyword argument 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](https://scipy.github.io/devdocs/dev/api-dev/array_api.html#api-coverage). - 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`` h _[Truncated at 4000 characters — full notes: https://github.com/scipy/scipy/releases/tag/v1.17.0]_ ### v1.17.0rc2 — SciPy 1.17.0rc2 - Date: 2025-12-30 - Version: v1.17.0rc2 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.17.0rc2 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.17.0rc2 - Labels: Pre-release - **changed** — SciPy now requires Python 3.11-3.14 and NumPy 1.26.4 or greater - **added** — Many SciPy functions now have native support for batching of N-dimensional array input and additional support for the array API standard - **added** — coo_array in scipy.sparse now supports indexing including integers, slices, arrays, np.newaxis, Ellipsis, in 1D, 2D and nD - **added** — ARPACK and PROPACK in scipy.sparse.linalg have been rewritten from Fortran77 to C to support external pseudorandom number generators - **added** — transform.Rotation and transform.RigidTransform in scipy.spatial have been extended to support N-D arrays - **added** — geometric_slerp in scipy.spatial now has support for extrapolation - **added** — scipy.stats has gained the matrix t and logistic distributions - **added** — Initial support for 64-bit integer (ILP64) BLAS and LAPACK libraries has been added, including for MKL, Apple Accelerate and OpenBLAS - **changed** — Integration routines dopri5, dopri853, LSODA, vode, and zvode in scipy.integrate have been ported from Fortran77 to C - **added** — scipy.integrate.quad now has a fast path for returning 0 when the integration interval is empty - **added** — BDF, DOP853, RK23, RK45, OdeSolver, DenseOutput, ode, and complex_ode classes now support subscription for generic type compatibility with scipy-stubs - **changed** — scipy.cluster.hierarchy.is_isomorphic has improved performance and array API support - **added** — A new bc_type argument has been added to scipy.interpolate.make_splrep, make_splprep, and generate_knots to control boundary conditions for spline fitting - **added** — A new derivative method has been added to the scipy.interpolate.NdBSpline class to construct a new spline representing a partial derivative - **changed** — The NdBSpline mutable instance attribute .c was changed into a read-only @property - **changed** — Performance of cubic and quintic modes of scipy.interpolate.RegularGridInterpolator has been improved - **changed** — RegularGridInterpolator instance attributes .grid and .values were changed into read-only properties - **changed** — Numerical stability of scipy.interpolate.AAA has been improved and it has gained a new axis parameter - **added** — scipy.interpolate.FloaterHormannInterpolator added support for multidimensional, batched inputs and gained a new axis parameter SciPy 1.17.0 Release Notes ==================== **Note**: SciPy `1.17.0` is not released yet! 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](https://scipy.github.io/devdocs/dev/api-dev/array_api.html#api-coverage). - 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, Apple Accelerate and OpenBLAS. 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 _[Truncated at 4000 characters — full notes: https://github.com/scipy/scipy/releases/tag/v1.17.0rc2]_ ### v1.17.0rc1 — SciPy 1.17.0rc1 - Date: 2025-12-09 - Version: v1.17.0rc1 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.17.0rc1 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.17.0rc1 - Labels: Pre-release - **added** — Native support for batching of N-dimensional array input and array API standard support added to many SciPy functions - **added** — coo_array in scipy.sparse now has full support for indexing across dimensions without needing to convert between sparse formats - **added** — ARPACK and PROPACK rewrites from Fortran77 to C now empower the use of external pseudorandom number generators - **added** — transform.Rotation and transform.RigidTransform in scipy.spatial extended to support N-D arrays - **added** — geometric_slerp in scipy.spatial now has support for extrapolation - **added** — Matrix t and logistic distributions added to scipy.stats - **added** — Initial support for 64-bit integer (ILP64) BLAS and LAPACK libraries including MKL, Apple Accelerate and OpenBLAS - **changed** — Integration routines dopri5, dopri853, LSODA, vode, and zvode ported from Fortran77 to C - **added** — scipy.integrate.quad now has a fast path for returning 0 when the integration interval is empty - **changed** — scipy.cluster.hierarchy.is_isomorphic has improved performance and array API support - **added** — New bc_type argument added to scipy.interpolate.make_splrep and scipy.interpolate.make_splprep to control boundary conditions for spline fitting - **added** — derivative method added to scipy.interpolate.NdBSpline to construct a new spline representing a partial derivative - **changed** — Performance of cubic and quintic modes of scipy.interpolate.RegularGridInterpolator has been improved - **changed** — Numerical stability of scipy.interpolate.AAA has been improved - **changed** — scipy.interpolate.FloaterHormannInterpolator gained support for multidimensional, batched inputs and a new axis parameter - **changed** — scipy.linalg.inv now detects the structure of its argument and selects an appropriate low-level matrix inversion routine - **added** — New assume_a keyword added to scipy.linalg.inv to bypass structure detection if the structure is known - **added** — New lower={True,False} keyword argument added to scipy.linalg.inv to select the upper or lower triangle for symmetric inputs - **changed** — scipy.linalg.inv emits a LinAlgWarning if it detects an ill-conditioned input - **changed** — scipy.linalg.fiedler gained native support for batched inputs - **changed** — Performance improved for scipy.linalg.solve with batched inputs for certain matrix structures - **added** — optimize.minimize(method="trust-exact") now accepts a solver-specific subproblem_maxiter option - **added** — Callback functions used by optimize.minimize(method="slsqp") can opt into the new callback interface by accepting a single keyword argument intermediate_result - **changed** — scipy.signal.abcd_normalize gained more informative error messages and improved documentation - **added** — scipy.signal.get_window now accepts the suffixes '_periodic' and '_symmetric' to distinguish between periodic and symmetric windows - **added** — scipy.signal.hilbert2 gained the new keyword axes for specifying the axes along which the two-dimensional analytic signal should be calculated - **changed** — Documentation of scipy.signal.hilbert and scipy.signal.hilbert2 has been significantly improved SciPy 1.17.0 Release Notes ==================== **Note**: SciPy `1.17.0` is not released yet! 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](https://scipy.github.io/devdocs/dev/api-dev/array_api.html#api-coverage). - In `scipy.sparse`, ``coo_array`` now has full support for indexing across dimensions without needing to convert between sparse formats. ARPACK and PROPACK rewrites from Fortran77 to C now empower the use of external pseudorandom number generators. - 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, Apple Accelerate and OpenBLAS. 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. ``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` and `scipy.interpolate.make_splprep` 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. - Performance of ``"cubic"`` and ``"quintic"`` modes of `scipy.interpolate.RegularGridInterpolator` has been improved. - Numerical stability of `scipy.interpolate.AAA` has been improved. - `scipy.interpolate.FloaterHormannInterpolator` added support for multidimensional, batched inputs and gained a new ``axis`` parameter to select the interpolation axis. ``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); _[Truncated at 4000 characters — full notes: https://github.com/scipy/scipy/releases/tag/v1.17.0rc1]_ ### v1.16.3 — SciPy 1.16.3 - Date: 2025-10-28 - Version: v1.16.3 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.16.3 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.16.3 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 - Date: 2025-09-11 - Version: v1.16.2 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.16.2 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.16.2 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 - Date: 2025-07-27 - Version: v1.16.1 - Original notes: https://github.com/scipy/scipy/releases/tag/v1.16.1 - Permalink: https://whatsnew.fyi/product/scipy/releases/v1.16.1 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.