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.
In
scipy.sparse,coo_arraynow 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.Rotationandtransform.RigidTransformhave been extended to support N-D arrays.geometric_slerpnow has support for extrapolation.scipy.statshas 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, andzvodehave been ported from Fortran77 to C.scipy.integrate.quadnow has a fast path for returning 0 when the integration interval is empty.
scipy.cluster improvements#
scipy.cluster.hierarchy.is_isomorphichas improved performance and array API support.
scipy.interpolate improvements#
A new
bc_typeargument has been added toscipy.interpolate.make_splrepandscipy.interpolate.make_splprepto control the boundary conditions for spline fitting. Allowed values are"not-a-knot"(default) and"periodic".A new
derivativemethod has been added to thescipy.interpolate.NdBSplineclass, to construct a new spline representing a partial derivative of the given spline. This method is similar to theBSpline.derivativemethod of 1-D spline objects.Performance of
"cubic"and"quintic"modes ofscipy.interpolate.RegularGridInterpolatorhas been improved.Numerical stability of
scipy.interpolate.AAAhas been improved.scipy.interpolate.FloaterHormannInterpolatoradded support for multidimensional, batched inputs and gained a newaxisparameter to select the interpolation axis.
scipy.linalg improvements#
scipy.linalg.invroutine 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_akeyword 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 forassume_ais 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 ofscipy.linalg.invfor details;the routine emits a
LinAlgWarningif it detects an ill-conditioned input;performance for batched inputs has been improved.
scipy.linalg.fiedlerhas gained native support for batched inputs.performance has improved for
scipy.linalg.solvewith 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 argumentintermediate_result.
scipy.signal improvements#
abcd_normalizegained more informative error messages and the documentation was improved.get_windownow accepts the suffixes'_periodic'and'_symmetric'to distinguish between periodic and symmetric windows (overriding thefftbinparameter). This benefits the functionscoherence,csd,periodogram,welch,spectrogram,stft,istft,resample,resample_poly,firwin,firwin2,firwin_2d,check_COLAandcheck_NOLA, which utilizeget_windowbut do not expose thefftbinparameter.hilbert2gained the new keywordaxesfor specifying the axes along which the two-dimensional analytic signal should be calculated. Furthermore, the documentation ofhilbertandhilbert2was significantly improved.
scipy.sparse improvements#
coo_arraynow 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 thekronfunction.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.
dok_arraynow supports anupdatemethod which can be used to update the sparse array using a dict,dict.items()-like iterable, or anotherdok_arraymatrix. It performs additional validation that keys are valid index tuples.tocsris approximately three times faster and some unneccesary copy operations have been removed from sparse format interconversions more broadly.Added
scipy.sparse.linalg.funm_multiply_krylov, a restarted Krylov method for evaluatingy = f(tA) b.
scipy.spatial improvements#
The
spatial.transformmodule has gained an array API standard compatible backend.transform.Rotationandtransform.RigidTransformhave 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
shapeproperty.A
shapeargument to theiridentity()constructors, which should be preferred over the existingnumargument. This has also been added as an argument forRotation.random()(RigidTransformdoes not currently have arandomconstructor).An
axisargument to theirmean()functions.
The resulting shapes for
transform.Rotation.from_euler/from_davenporthave 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 resultingRotationhas the shapenp.atleast_1d(angles).shape[:-1]. Angle inputs to Davenport angles must also match the number of axes in the last dimension. The resultingRotationhas the shapenp.broadcast_shapes(np.atleast_2d(axes).shape[:-2], np.atleast_1d(angles).shape[:-1]).Rotation.from_matrixhas gained anassume_validargument that allows for performance improvements when users can guarantee valid matrix inputs.from_matrixis now also faster in cases where a known orthogonal matrix is used.The
scipy.spatial.geometric_slerpfunction 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 withstartbeing a point on the equator, andendbeing a point at the north pole, then a value oft=-1would give you a point at the south pole.Rotation.as_eulerandRotation.as_davenportmethods have gained asuppress_warningsparameter to enable suppression of gimbal lock warnings.
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,stdtrandstdtrit.The incomplete beta functions
betainc,betaincc,betaincinvandbetainccinvare improved for extreme parameter ranges.
scipy.stats improvements#
scipy.stats.matrix_thas been added to represent the matrix t distribution. It supports methodspdf(andlogpdf) for computing the probability density function andrvsfor generating random variates.scipy.stats.Logisticwas added for modeling random variables that follow a logistic distribution.scipy.stats.quantilenow accepts aweightsargument to specify frequency weights.scipy.stats.quantileis now faster on large arrays as it no longer uses stable sort internally.scipy.stats.quantilesupports three new values of themethodargument,'round_inward','round_outward', and'round_neareast', for use in the context of trimming and winsorizing data.scipy.stats.truncparetonow accepts negative values for the exponent shape parameter, enabling use oftruncparetoas a more general power law distribution.scipy.stats.logsernow provides a distribution-specific implementation of thesfmethod, 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, andscipy.stats.mood. Typically, this improves performance with multidimensional (batch) input.The critical value tables of
scipy.stats.andersonhave been updated.The speed and accuracy of most
scipy.stats.zipfianmethods has been improved.The accuracies of the
scipy.stats.Binomialmethodslogcdfandlogccdfhave been improved in the tails.The default guess of
scipy.stats.trapezoid.fithas been improved.The accuracy and range of the
cdf,sf,isf, andppfmethods ofscipy.stats.binomandscipy.stats.nbinomhas been improved.
Array API Standard Support#
An overall summary table for our array API standard support/coverage is now availalble.
The overhead associated with array namespace determination has been reduced, providing improved performance in dispatching to different backends.
scipy.cluster.hierarchy.is_isomorphichas gained support.scipy.interpolate.make_lsq_spline,scipy.interpolate.make_smoothing_spline,scipy.interpolate.make_splrep,scipy.interpolate.make_splprep,scipy.interpolate.generate_knots, andscipy.interpolate.make_interp_splinehave gained support.scipy.signal.bilinear,scipy.signal.iircomb,scipy.signal.iirdesign,scipy.signal.iirfilter,scipy.signal.iirpeak,scipy.signal.iirnotch,scipy.signal.gammatone, andscipy.signal.group_delayhave 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, andscipy.signal.ellipordhave gained support.scipy.signal.savgol_filter,scipy.signal.savgol_coeffs, andscipy.signal.abcd_normalizehave gained support.spatial.transformhas gained support.scipy.integrate.qmc_quad,scipy.integrate.cumulative_simpson,scipy.integrate.cumulative_trapezoid, andscipy.integrate.rombhave gained support.scipy.linalg.block_diag,scipy.linalg.fiedler, andscipy.linalg.orthogonal_procrusteshave gained support.scipy.interpolate.BSpline,scipy.interpolate.NdBSpline,scipy.interpolate.RegularGridInterpolator, andscipy.interpolate.RBFInterpolatorgained 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, andscipy.stats.yeojohnson_llf.scipy.stats.pearsonrhas gained support for JAX and Dask backends.scipy.stats.variationhas gained support for the Dask backend.marraysupport was added forstats.gtstd,stats.directional_stats,stats.bartlett,stats.variation,stats.pearsonr, andstats.entropy.
Deprecated features and future changes#
The
scipy.odrmodule is deprecated in v1.17.0 and will be completely removed in v1.19.0. Users are suggested to use theodrpackpackage instead.The default dype behavior of
scipy.sparse.diagsandscipy.sparse.diags_arraywill change in v1.19.0.In v1.19.0,
scipy.linalg.hankelwill no longer ravel multidimensional inputs and instead will treat them as a batch.The
precenterargument ofscipy.signal.lombscargleis deprecated and will be removed in v1.19.0. Furthermore, some arguments will become keyword only.
Expired deprecations#
scipy.stats.find_repeatshas been removed. Please usenumpy.unique/numpy.unique_countsinstead.scipy.linalgfunctions for Toeplitz matrices no longer ravel n-d input arguments; instead, multidimensional input is treated as a batch.The
seedandrandfunctions fromscipy.linalg.interpolativehave been removed. Use therngargument instead.Complex inputs to
scipy.spatial.distance.cosineandscipy.spatial.distance.correlationnow raise an error.Support for object arrays and longdoubles has been removed from
scipy.signal.correlate,scipy.signal.convolve,scipy.signal.lfilter, andscipy.signal.sosfilt.kulczynski1andsokalmichenerhave been removed fromscipy.spatial.distance.kronhas been removed fromscipy.linalg. Please usenumpy.kron.Accidentally exposed functions have been removed from
scipy.interpolate.interpnd.The
random_stateandpermutationarguments ofscipy.stats.ttest_indhave been removed.sph_harm,clpmn,lpn, andlpmnhave been removed fromscipy.special.
Backwards incompatible changes#
The resulting shapes for
transform.Rotation.from_euler/from_davenporthave 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 resultingRotationhas the shapenp.atleast_1d(angles).shape[:-1]. Angle inputs to Davenport angles must also match the number of axes in the last dimension. The resultingRotationhas the shapenp.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.0to1.89.0.On POSIX operating systems, SciPy will now use the
'forkserver'multiprocessing context on Python 3.13 and older forworkers=<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=truemeson option, and make sure to have a LAPACK library which exposes both LP64 and ILP64 symbols. Currently supported LAPACK libraries are MKL, Apple Accelerate and OpenBLAS through thescipy-openblas64package. 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}_funcsfunctions:scipy.linalg.lapack.get_lapack_funcs(..., use_ilp64="preferred")selects the ILP64 variant if available and LP64 variant otherwise;cython_blasandcython_lapackmodules always contain the LP64 routines for ABI compatibility.
Please report any issues with ILP64 you encounter.
Issues closed for 1.17.0#
#1508: Riccati-Bessel functions are misspelled in the docs (Trac #981)
#3890: ENH: stats.logser: implement
cdf/sf#4487: “_solout” in “dopri5” class of “scipy.integrate” reverses the…
#5503: ENH: special.betainc: improve errors for extreme numbers of trials
#7931: scipy.special.tests.test_basic::TestCephes::test_fdtri fails…
#9023: Opportunity to add a seed or a random_state parameter to scipy.sparse.linalg.eig…
#9185: BUG: sparse.linalg: ARPACK error 1
#9460: BUG: sparse.linalg.eigs: sorting behavior reliability
#10744: BUG: sparse.linalg: Test failures with BLIS BLAS
#11805: Fatal Python error: Segmentation fault - test_arpack.py::test_symmetric_modes
#12513: BUG: optimize: Halting problem in trust-exact subproblem
#13222: porting scipy’s Fortran code to NAG’s nagfor compiler
#13671: QUERY: signal.coherence: discrepancy with Matlab
#13692: scipy.sparse.linalg.eigsh hangs for complex matrices on macOS
#13780: reprodcibility of scipy.sparse.linalg.svds
#14498: overwrite_data=True kwarg ignored when type=”constant” in scipy.signal.detrend
#14823: BUG: vectors/matrices produced by eigenvalues/vectors routines…
#15940: odeint (lsoda) emits too many warnings that are not filterable.
#16232: BUG: Memory leak due to new reference passed to non-stealing…
#18191: BUG: Iteration count in scipy.sparse.linalg._eigen.arpack greater…
#18736: TST:
test_hermitian_modestest failure#18919: BUG: Bad result (broadcasting ?) for binom.ppf and q=1, when…
#19291: BUG: firwin(pass_zero=False) does not block DC
#19756: BUG: sparse.linalg.eigsh: output eigenvector non-deterministic…
#19826: MAINT: follow-ups to gh-19724 (pytest pins, temporary CI changes,…
#19930: BUG: multivariate t broken for
df=inf#20050: ENH: interpolate: NdBSpline partial derivatives
#20339: BUG: Segfault in complex sparse eigen solver
#20835: BUG: special.fdtri: inaccurate results for extreme arguments…
#21039: ENH: Implement all relevant methods for
sparse.dia_array#21137: BUG: sparse.linalg.svds:
ARPACK error -9: Starting vector is…#21156: DOC:
integrate: tutorialhelpcommand output is out…#21541: ENH: spatial:
Rotation.__mul__: handle non-Rotation…#21563: ENH: stats.percentileofscore: 2D array input should be fixed…
#21716: DOC: conda-forge
compilerspackage now also usable on windows#21936: BUG:
*ger*routines inlinalg.blasare not thread-safe#22053: MAINT: Cython lint failures in build output
#22310: BUG: scipy.sparse.linalg.eigsh returns an error when LinearOperator.dtype=None
#22365: BUG: ndimage: C++ memory management issues in
_rank_filter_1d.cpp#22412: RFC/API: move
clarkson_woodruff_transformfromlinalg…#22500: ENH: spatial.transform: Add array API standard support
#22510: performance: _construct_docstrings slow in scipy.stats
#22682: BUG: special.betainc: inaccurate/incorrect for small a and b…
#22794: ENH: add
weightsparam tostats.quantilesimilarly to…#22871: BUG: stats.sigmaclip: returns strange thresholds
#22880: BUG: interpolate: Akima1DInterpolator raises ValueError for valid…
#22887: DEV: follow-up tasks after merge of
spinsupport#22974: ENH: sparse.linalg: Krylov methods for matrix functions
#22979: DOC: optimize.nnls: squared 2-norm instead of 2-norm?
#22980: DEV:
spin test -b alladds--pyargs scipytwice#23021: DEV: can we ‘scrape’ package-wide
make_xp_test_caseinfo?#23053: DEV:
spin smoke-docsadds an option twice#23080: BUG: optimize: too many open files with multiprocessing
#23101: BUG: special: Discontinuity in associated Legendre functions
#23111: BUG: stats.pmean: wrong value for infinite orders
#23116: BUG:
UserWarningdue tospin build#23124: CI: (re-)adopt
(d)tachfor modularity enforcement#23136: DEV/DOC: update vendored code pages for
_lib.decorator#23160: DOC: signal.medfilt: remove outdated note
#23166: BENCH/DEV:
spin benchoption--quickis useless (always…#23171: BUG:
interpolate.RegularGridInterpolatorfails on a 2D grid…#23204: BUG/TST: stats: XSLOW test failures of
ttest_ind#23208: DOC: Missing docstrings for some warnings in scipy.io
#23231: DOC: Fix bug in release notes for scipy v1.12.0
#23237: DOC: Breadcrumbs missing and sidebar different in API reference…
#23248: BUG/TST:
differentiatetest_dtypefails withfloat16…#23297: BUG [nightly]: spatial.transform.Rotation.from_quat: fails for…
#23301: BUG: free-threading: functionality based on multiprocessing.Pool…
#23303: BUG: spatial.transform.Rotation: Warning Inconsistency
#23330: BUG: special.kv: incorrect translation of AMOS Fortran code resulting…
#23334: DEV:
spin lint: usesys.executablealways#23344: CircleCI benchmarks job requires
hypothesis#23345: DOC: Incorrect dimension of PPoly.c in docstring
#23352: DOC: spatial.is_valid_dm: misleading documentation
#23355: Chatterjee’s Xi returns different results based on
numpy…#23358: BUG: stats: ppf of 0 returns a value outside the distribution…
#23369: DOC: interpolate: NearestNDInterpolator works with multi-dimensional…
#23371: BUG: (interpolate) _dierckx.data_matrix gives ValueError if input…
#23382: BUG: setting with
sparse.xxx_{matrix,array}2D singleton#23383: DOC/DEV: correct editable install
spinguidance#23391: ENH: spatial.transform: array API standard support tracker
#23400: ENH: spatial.geometric_slerp: allow for extrapolation
#23409: BUG: stats.qmc.Sobol: stuck in infinite loop in low_0_bit after…
#23412: TST: stats:
marraytests failing with latest array-api-strict#23418: BUG: scipy.signal.square ignores input dtype due to incorrect…
#23423: CI: new BLAS tests ci jobs don’t respect ci skips
#23431: DOC: interpolate.RbfInterpolator: incorrect equation in Notes
#23449: DOC/ENH: signal.get_window: different default for symmetric/periodic…
#23462: BUG: sparse: load_npz fails for coo_arry with dim>2
#23477: DOC: The file
scipy/_lib/_lazy_testing.pyhas been removed#23510: BUG: NdBSpline segfaults for too high derivative orders
#23514: DOC: add LFX Insights badge to README
#23517: SHGO: issue passing args to objective function
#23542: BUG: interpolate: Internal error from
fpknotwhile running…#23551: BUG: stats.levene: test results are incorrect when
center="trimmed"#23553: BUG: scipy.sparse.csgraph.yen crashes with out-of-bounds source…
#23555: BUG: lfilter with empty a array can trigger misleading error…
#23556: BUG: deconvolve with empty divisor or signal arrays causes inconsistent…
#23559: DOC: stats: A reference in the
flignerdocstring occurs twice.#23581: BUG:
xp_capabilitiesadds empty lines to docstrings#23596: DOC: wrong version for stats.f_oneway’s equal_var parameter
#23603: TST: adapt to NumPy warning change (mean of empty slice)
#23608: DOC: Being clear about the distribution of
scipy.spatial.transform.Rotation.ra…#23640: BUG: optimize: incorrect termination criteria in minpack LMSTR?
#23644: BUG: sparse:
csc_array.setdiag()makes indices unsorted without…#23670: BUG:
xp_promoteandxp_result_typeare slow for big tensors…#23678: BUG: stats: custom distribution generated from
zipfianhas…#23686: BUG: Hang in scipy 1.16.2 on macOS x86_64 in scipy.sparse.linalg.eigsh…
#23689: CI: optimize: “UserWarning: ‘where’ used without ‘out’” error…
#23703: DOC: special: second parameter in the
factorialkdocstring…#23704: DOC: optimize: typo in LinearConstraint docs
#23708: TST:
FAILED scipy/stats/tests/test_continuous.py::TestDistributions::test_func…#23710: BUG:
signal/tests/test_short_time_fft.py::test_closest_STFT_dual_window_roundt…#23711: BUG:
stats/tests/test_axis_nan_policy.py::test_axis_nan_policy_axis_is_None#23715: BUG: integrate: benchmark integrate.CubatureOscillatory.time_plain…
#23720: TST: test_as_euler_symmetric_axes tol with torch
#23742: QUERY: Fitting 4 parameters beta distribution leads to unexpected…
#23750: TST: signal: Add better isolation to alternative backend tests…
#23760: DOC/DX:
spin ipython --helpmissing required use of--…#23762: ENH: interpolate.RegularGridInterpolator:
eliminate_zeros()…#23763: BUG: scipy.odr.ODR Segmentation Fault with job=1 and Explicit…
#23778: ENH: Improve performance of converting csc arrays to csr arrays…
#23825: TST: Missing tests for
mathieu_even_coef,mathieu_odd_coef#23832: DOC: Broadcasting in
stats.quantile#23852: BUG/TST: stats: New XSLOW failures in stats
#23867: BUG:
special.comb(0, 0, repetition=False) == 0, not 1#23879: DOC: RigidTransform.as_components doc is incorrect
#23910: TST: stats: free-threaded failure in
test_non_finite_inputs_and_int_bins#23925: DOC: Invalid documentation of parameter “shape” of the “scipy.sparse….
#23932: CI: mypy and clang jobs failing with “unused function” error…
#23989: CI: hang in windows job, OpenMP clash
#24043: DEV: switch from
dtachtotach#24046: TST: stats: TestStudentT.test_moments_t failure
#24052: CI: TypeError: Multiple namespaces for array inputs
#24089: ENH: spatial.transform: Add
normalizeargument toRotation.from_matrix
Pull requests for 1.17.0#
#19668: ENH: optimize.minimize: add
subproblem_maxiteroption for…#21683: ENH:MAINT:integrate: Rewrite DOP F77 code in C
#22041: BUG: Perform
Py_DECREFonobjto avoid memory leak#22506: ENH: special.btdtria: migrate to boost
#22539: ENH/MAINT: migrate
special.chndtrand its inverses to boost#22644: ENH: stats.quantile: methods to support trimming/Winsorizing
#22699: ENH: special: boostify F distribution functions
#22743: ENH: ILP64 BLAS/LAPACK support
#22748: ENH:MAINT: sparse.linalg: rewrite ARPACK in C
#22795: ENH: special: add more functions to
_support_alternative_backends#22827: ENH: stats: add
marraysupport to a few remaining functions#22856: MAINT: stats: ensure functions work on non-default device
#22857: ENH: stats: add array API support to much of
_axis_nan_policy…#22885: MAINT: eager_warns: accept xp as keyword-only argument
#22889: MAINT: migrate
special.btdtribto boost#22907: BENCH: stats.qmc.geometric_discrepancy: add benchmarks
#22911: ENH: signal: Array API for filter design functions
#22914: ENH: signal: Add Array API compatibility to the
filter_design…#22924: ENH: linalg: low-level nD support, take 3
#22925: ENH: stats: Add matrix variate t distribution
#22938: TST:
signaladd test coverage to the handling of new set…#22962: MAINT: migrate
stdtrandstdtritto boost#22972: ENH: spatial.transform.RigidTransform: refactor into pure Python…
#22983: ENH: sparse.linalg: a restarted Krylov method for evaluating…
#22989: ENH:
cluster: vectorizeis_isomorphic#23006: REL: set version to 1.17.0.dev0
#23009: ENH: sparse: efficient conversion from DIA to CSR format
#23012: BENCH: asv benchmarks for alternative array backends
#23015: DOC: scipy.signal.ShortTimeFFT.k_max: Fix slice index
#23016: MAINT: bump minimum NumPy version
#23019: BUG: interpolate.Akima1DInterpolator: Identical Rearrangement…
#23020: ENH: interpolate.BSpline: add array API standard interface
#23023: DEP: stats: remove find_repeats
#23026: DEV: Remove
--paralleland rely onspin‘s--jobs…#23028: MAINT: create
_lib._array_api_overrideto solve circular…#23034: DEP: linalg.interpolative: remove seed and rand
#23039: TYP: fix and improve the
linalg._decomp_lu_cythonstub#23041: DOC/DEV: Updated developer docs for
spin#23043: DEP: linalg: remove kron
#23045: DEP: interpolate.interpnd: remove incidental imports from private…
#23050: DEV: add
spin notesandspin authorscommands#23052: ENH: interpolate: array API for BSpline-based
make_functions#23057: ENH: Speed up
array_namespacethrough caching#23058: CI: clean up free-threading job, use released Cython/Pythran
#23059: MAINT: remove nan-handling from _factorialx_array_exact
#23060: DOC: Revise a footnote in meson-distutils
#23062: DEV: help debug free-threading build of Fortran modules
#23063: DEV: ignore
pixi-dev-scipystackdirs#23065: ENH: stats.tukey_hsd: improve array index iteration in
TukeyHSDResult.__str__`…#23071: ENH: linalg: low-level batching support in
solve#23073: TST:
linalg: refactortest_blas#23078: MAINT: smoke-docs: add a
--doctest-only-doctestsflag to…#23081: DOC: Add tables summarizing array API backend capabilities across…
#23082: TST: linalg: thread-safe rng
#23083: TST: linalg: pytest-run-parallell out of memory
#23084: TST: linalg: race condition in BLAS
ger*#23085: TST: signal: fix flaky TestZpk2Sos
#23087: CI: move pre-release and free-threading jobs to CPython 3.14-dev
#23089: ENH/DEP: linalg: support batching for toeplitz and related functions
#23092: DEV: Address issues in
spin docscommand#23093: DEV: remove duplicate
--doctest-collect=apiinspin smoke-docs#23094: DOC: linalg: fix overview for
cdf2rdfandkhatri_rao#23095: DEV: remove
python dev.pyin favor ofspin#23096: CI: move to
cibuildwheel3.0b4 and tomanylinux_2_28#23104: ENH: stats: Dask support for
variation#23105: ENH: stats: Dask and JAX support for
pearsonr#23108: MAINT: Remove optional arguments from
*_implfunctions in…#23112: MAINT: remove duplicated test in
stats.tests.test_stats.py#23117: BUG: remove
cdefexports inlinalg._decomp_interpolative#23118: TYP: generic
signal.ShortTimeFFTtype#23121: BUG: sparse.linalg.LaplacianNd: periodic eigenvectors
#23123: TYP: Disable NumPy’s deprecated mypy plugin
#23125: MAINT: Update vendored
_lib.decoratorsmodule tov5.2.1#23129: DOC: special.roots_jacobi: add example to docstring
#23130: DEV: spin: change shorthand of
--setup-argsto-Sto…#23138: MAINT: sparse: remove python 2 remnants from
_spbase#23140: TST: Fix missing exceptions
#23143: TST: Run pytest-run-parallel on
xptests#23149: TST: ndimage.vectorized_filter: add missing assertion to test
#23151: CI: use 4 cores on GitHub Actions
#23152: TST: io: reduce peak memory usage 9x
#23153: TST: optimize: cap pytest-run-parallel memory usage
#23173: ENH/DOC: signal.hilbert: Refactor to avoid extra scaling array…
#23175: MAINT: Bump array-api-compat; speed up
array-namespace#23176: BUG:
spin benchignores--quickparameter#23181: DOC: spatial: Rigid Transformation docs cleanup
#23190: BUG/BENCH: remove unconditional
--quickfromspin bench…#23193: ENH: spatial: optimize performance of
RigidTransform#23194: MAINT: Improve error type for RigidTransform.from_rotation
#23198: ENH: spatial.transform.Rotation: refactor into pure Python class…
#23201: DOC : removes outdated notes from the
medfiltfunction#23202: DEP: spatial: raise error for complex input to cosine and correlation
#23205: TST: stats.ttest_ind: remove test of deprecated/removed
permutations#23207: CI: always set Python in array API testing
#23210: DEP: spatial.distance: remove kulczynski1 and sokalmichener metrics
#23212: DEP: signal: remove support for object arrays and longdoubles…
#23213: MAINT: forward port 1.16.0 relnotes
#23218: ENH: sparse: Add COO indexing for 1d, 2d, and nD
#23223: MAINT: port
_test_fortran.fto Python functions intest_fortran.py#23224: MAINT: _lib: remove old/unneeded code
#23232: DOC: Fix typo in 1.12.0-notes.rst
#23233: ENH: Implement support for
bc_type="periodic"inmake_splrep…#23234: TYP: generic
interpolatetypes#23243: DEP: special: remove deprecated functions
#23244: TYP: generic
optimizetypes#23247: ENH/DOC: signal.hilbert2: Refactor to avoid extra scaling array…
#23249: ENH: spatial.transform.Rotation: add array API backend
#23253: BUG: interpolate.RegularGridInterpolator: fix linear interp….
#23254: DOC: special: LaTeX cleanup
#23255: MAINT:
spatial._plotutils: remove matplotlib 1 code#23256: MAINT: remove
_lib._threadsafety#23257: DOC: add orphaned modules to toctree
#23258: MAINT:
sparsetesting withoutdecorator#23259: ENH: stats:
Logisticdistribution#23260: MAINT: Remove
_lib.decorator#23262: TST: sparse.linalg: improve coverage for
funm_multiply_krylov#23264: TST:
test_axis_nan_policy: skip on unexpected exceptions#23265: TST: signal: add test for
zpk2tfwith multi-dimensional arrays#23267: MAINT: sparse: move
_validate_indicesand_asindices…#23271: DOC: interpolate.make_interp_spline: fix minor formatting typos…
#23273: DOC: interpolate.make_splprep: fix dimensions ordering
#23274: MAINT:sparse.linalg: ARPACK to Arnaud rename and project structure…
#23275: TST: migrate away from suppress_warnings and assert_warns
#23286: TST: signal: clean-up tests post array api conversion
#23287: MAINT: differentiate: add
xp_capabilities#23288: MAINT: optimize: mark functions with
xp_capabilities#23289: DOC: Add link to Golub and Van Loan’s book “Matrix Computations”
#23290: TST: differentiate: use correct
xp_capabilitiesforjacobian#23291: BENCH: sparse: parameterize benchmark with sparse arrays and…
#23294: TST: better thread-unsafe markers and re-enable pytest-run-parallel…
#23298: BUG: spatial.transform.Rotation.from_quat: fix dtype inference…
#23300: DOC: development_workflow: fix SciPy’s commit guideline link
#23304: TST: optimize: Speed up
test__basinhopping#23305: TST: linalg: make
test_expm_multiplyfriendly to pytest-run-parallel#23306: TST: free-threading performance tweaks
#23307: TST: free-threading: More local RNGs
#23311: MAINT/TST: always use forkserver multiprocessing on POSIX
#23313: BLD: support build warnings for flang/clang-cl on Windows
#23317: BUG: sparse.linalg: fix arpack complex arrays on windows
#23319: TST: io.wavfile: add test for
SeekEmulatingReader.seek#23320: BUG:DOC: sparse.linalg: Fix more arnaud bugs and add C code documentation
#23324: BUG: stats: avoid building docstrings if python is run with
-OO#23325: DOC: interpolate/RBF: tweak the docstring example, tweak dimensions
#23326: DEV: remove non-generated file from
.gitignore#23327: DOC/BUG: Fix a few dynamically modified docstrings.
#23331: TST: Read
@xp_capabilitiesfrompytestmark#23340: DEP/MAINT: sparse: change default dtype behavior of ‘diags_array’…
#23341: BUG: signal: zpk2tf: support array-api-strict on multi-dim arrays
#23343: DOC: Fix trivial typos
#23346: DOC: correct dimensions of PPoly.c in docstring
#23349: BENCH, TST: benchmarks without hypothesis
#23350: BUG: linalg: fix
solve(..., assume_a='pos', lower=False)#23354: DEV: Use
sys.executableeverywhere in spin lint#23357: ENH, MAINT: linalg: assume_a=”diagonal” for solve and inv
#23359: DOC: Add example to
show_config()#23360: DOC: io: add docstrings to warnings and errors
#23362: MAINT: linalg.{inv, solve}: better error reporting for batched…
#23366: DOC: Clarify that is_valid_dm doesn’t check triangle inequality
#23368: TST: linalg: small tolerance bump for
test_orth_memory_efficiency#23370: ENH: spatial: add ability to suppress gimbal lock warnings for…
#23374: DOC: corrected the docstring of NearestNDInterpolator
#23375: ENH: Add
NdBSpline.derivativemethod#23381: MAINT: stats: Apply xp_capabilities decorator to all public functions
#23388: DOC: fix array api support table
#23389: MAINT: cluster.hierarchy: mark set_link_color_palette as out…
#23392: MAINT: datasets: mark functions as out of scope for array api…
#23393: DOC: remove manual array api support list
#23394: DOC: stats.rv_continuous.ppf/isf: document convention
#23399: ENH: add Accelerate ILP64 support and CI job
#23401: DOC: forward port 1.16.1 relnotes
#23404: DOC: special: fix output shape of
*_allfunctions#23405: MAINT:BLD:_lib: Remove deprecated Python TLS fallback code from…
#23406: DOC: stats.false_discovery_control: added note that input does…
#23410: MAINT: integrate: add xp_capabilities to public functions
#23415: MAINT: ndimage: add
xp_capabilitiesto functions in public…#23416: DOC: Add complexity remark to scipy.stats.kendalltau
#23420: MAINT: break import dependencies between special-linalg and linalg-sparse
#23421: DX: don’t lint cython build output
#23422: DOC: special: add example to ellipeinc and correct docstring…
#23424: ENH: spatial: optimize performance of Rotation
#23425: ENH: spatial.transform.RigidTransform: add array API backend
#23426: ENH: spatial.geometric_slerp: allow for extrapolation
#23427: DOC: stats.chatterjeexi: document how to handle ties in
x#23432: DOC: interpolate.RBFInterpolator: fix typo
#23434: CI: fix skip conditions in
linux_blas.ymljobs#23439: DOC: special: Add some simple examples for loggamma.
#23443: BUG: stats.qmc: Avoid infinite loop in sobol when requesting…
#23453: MAINT: Support ruff 0.12
#23454: ENH, MAINT: simpler calculate_areas()
#23456: DOC: Update link to Jupyter Project Governance
#23463: DOC: sparse.kronsum: add example
#23465: BUG: sparse: nD sparse save_npz and load_npz
#23466: DOC: Remove boilerplate text in a remark
#23467: ENH: spatial.transform.Rotation: support broadcasting
#23468: DOC: optimize.shgo: correct
minimize_every_iterdescription#23470: DOC: Update a link about numba support
#23473: DOC: special.hankel1: add example and remove old docstring copy
#23476: DEP: signal.lombscargle: deprecate argument
precenter#23479: DOC: Update outdated
lazy_xp_functionreferences#23483: ENH: signal.abcd_normalize: Refactor, improve docstr, and make…
#23486: DOC: special: remove duplicated docstrings
#23489: DOC: clarify nnls minimizes squared 2-norm (closes #22979)
#23491: DOC: signal.detrend: clarify
overwrite_databehaviour#23492: DOC: remove
help(integrate)output#23494: ENH: integrate.quad: shortcut if upper/lower bounds are equal
#23496: DOC: special: added refs to Digital Library of Math. Functions
#23497: ENH: integrate.romb: array-API support
#23498: TST: additional tests if
integrate.quadupper/lower bounds…#23499: ENH: update boost to 1.89
#23501: ENH: integrate.cumulative_trapezoid: add array API support
#23502: DOC: add header to array api support in docstring
#23504: BUG: stats: trapezoid.fit does not converge
#23507: ENH: add array api support for
linalg.orthogonal_procrustes…#23511: DOC: interpolate: Ndbspline derivative methods list
#23512: MAINT: remove unused cdflib code
#23513: ENH: integrate.cumulative_simpson: add array api support
#23518: ENH/BUG: signal.get_window: Refactor and allow ‘_periodic’ and…
#23520: BUG: shgo mutating user supplied dictionaries
#23521: BUG: shgo should accept args for fun/jac/hess
#23523: MAINT: Use reshape instead of setting the shape attribute for…
#23524: MAINT: Use reshape instead of setting the shape attribute for…
#23526: MAINT: Use reshape instead of setting the shape attribute for…
#23528: CI: swap to windows-2025 [wheel build]
#23531: ENH:MAINT: sparse.linalg: Rewrite PROPACK in C
#23534: ENH: sparse: add funcs
swapaxes,permute_dims,expand_dims…#23535: BUG: special: Fix switched overflow and underflow error messages.
#23536: DOC: Convert math symbols into Latex for format consistency
#23537: ENH: Add two private ufuncs related to generalized harmonic numbers.
#23538: MAINT: differential_evolution, polish takes a callable
#23547:
linalg.solve: move “sym”/”her” solvers to C#23557: BUG: fix levene and fligner test incorrect results with trimmed…
#23558: DOC:
special.modfresnelmdocstring equation fix#23562: DOC: Fix duplicate and dead link in fligner docstring
#23565: DOC/DEV: update editable install guidance for
spin install#23566: MAINT: Use np.view instead of setting dtype
#23569: ENH: interpolate.FloaterHormannInterpolator: add axis parameter
#23572: DOC: Fix a few typos in API Reference
#23573: MAINT: slsqp callback accepts intermediate_result
#23574: ENH: linalg.fiedler: add native batch support and array api support
#23575: MAINT: use boost master branch
#23579: ENH: interpolate.AAA: add diagonal scaling to improve conditioning
#23584: ENH: migrate
special.chdtrivto boost#23585: MAINT: remove empty lines added to docstring by various decorators
#23586: MAINT: bump array-api-extra to v0.9.0
#23588: MAINT: Test spatial.transform.Rotation.__iter__ with jit
#23590: ENH: linalg.block_diag: add array api support
#23591: DOC: Remove typo
#23592: MAINT: special: Replace disrecommended assert functions with…
#23598: DOC: Fix format issues in API Reference
#23599: DOC: stats.f_oneway: change versionadded to 1.16.0
#23600: MAINT: fix more memory management and error handling issues in…
#23601: DOC: forward port 1.16.2 relnotes
#23606: MAINT: signal: simplify
cheb2apformulas#23607: BUG: signal.lfilter: More meaningful error messages for invalid…
#23609: BUG: signal.deconvolve: More meaningful error messages for invalid…
#23610: TYP: more generic
integratetypes#23614: TST: shim for NumPy warning changes
#23616: BUG: ndimage: fix handling of memory allocation failures.
#23618: BUG: sparse.csgraph.yen: Validate source and sink to avoid seg….
#23620: MAINT: io: Improve
spmatrixarg handling and description…#23621: DOC/BUG: signal.firwin: Improve documentation
#23623: DOC: stats.levy_stable: improvements
#23625: ENH: sparse: Add DOK update method and tests
#23626: BUG:sparse: allow setting a singleton via a sparse container
#23627: DOC: spatial: Rotation.random: mention distribution in docstring
#23629: CI: use asv<0.6.5 to avoid problem with that release - fixes…
#23630: DEV: drop
shallowfrom submodules#23632: MAINT: spatial.transform.Rotation:
from_euler/from_davenport…#23633: MAINT/TST: stats: loosen a test tolerance.
#23636: TST: stats: test against
marraybackend again#23638: CI: adapt
gpu-ci.ymlto new Pixi workspace#23645: MAINT:optimize: Fix missing pointer dereference in MINPACK
#23646: CI: fix issue with
spinbroken due to newclickrelease#23647: CI: fix issue with spin broken due to new click release (follow-up)
#23649: CI: use Pixi for
array_api.ymlandlint.yml#23650: DOC: Update a reference link in scipy.optimize.root
#23653: MAINT: Fix
spatial.transform.RigidTransformxp backend comments#23654: CI: use Pixi for
macos.yml#23655: ENH: stats.truncpareto: allow negative exponent
#23658: CI: Pixi: use
no-pinstrategy and refactor environments#23659: MAINT: signal: deduplicate
_swapaxeshelpers#23661: DOC: Improve formatting in continuous distributions description
#23662: ENH: signal: Convert Savitzky-Golay filter to Array API
#23666: DOC/DEV: Document
scipy.signal‘s Array API caveats.#23667: ENH: integrate.qmc_quad: add array API support
#23668: MAINT: signal: tighten the workaround for object arrays
#23669: DOC: linalg: document batch support
#23671: DOC: Update stable version switcher button styles in CSS
#23674: MAINT: fix whitespace test
#23675: ENH: spatial.transform.RigidTransform: support broadcasting
#23676: BUG: Fixes #23644: sparse: csc_array.setdiag() makes indices…
#23677: ENH: sparse: Add nD kron sparse construction
#23679: MAINT/STY:
spatial._kdtree: Fix type of default value of…#23680: MAINT: linalg.hankel: warn against changing behavior for multidimensional…
#23683: MAINT: sparse: avoid recent free-threading
test_matrix_io.py…#23688: MAINT: Remove ‘o’ (Greek omicron) from allowed symbols.
#23690: DOC: spatial.transform.Rotation: update docs
#23692: MAINT: stats.pmean: enforce finite
prequirement#23693: ENH: stats.mode: add array API support
#23694: DOC: Correct minor formatting issues in
scipy.sparse.linalg#23695: DOC: spatial.transform.RigidTransform: update docs
#23696: TST: special: avoid extremely slow edge cases in
mpmathtests#23697: DEV: improve
spin build --helpw.r.t. debug builds#23699: DOC: stats.sigmaclip: results may not satisfy an intuitive property
#23702: ENH: stats.lmoment: add array API support
#23705: MAINT: stats.rv_discrete.ppf/isf: fix behavior with array args,…
#23706: MAINT: stats.multivariate_t.logpdf/pdf: fix infinite DOF special…
#23709: ENH: stats.alexandergovern: add array API support
#23713: TST: macos-15-intel
#23714: DOC: correct typo in
factorialkparameters doc#23716: TST: stats.Binomial.logcdf: improves precision in tails
#23717: ENH: Migrate special.pdtrik to boost
#23718: ENH: spatial: Implement
RigidTransform.mean()#23719: DOC: minor typo
#23721: TST: test_as_euler_symmetric_axes tol bump
#23724: DOC: Fixing scipy.linalg.polar
udocstring.#23726: Fix typo (coefficent -> coefficient)
#23727: MAINT: Consistent
spatial.[c]KDTreemethod parameter defaults…#23729: BUG: spatial: Fix shape of Rotation mean when ndim > 1
#23733: ENH: stats.logser: implement sf
#23735: CI: silence pyparsing 3.3.0a1 deprecation warnings
#23739: MAINT: stats: remove use of
np.random.seed#23740: Fix typo in documentation where Riccati is misspelled as Ricatti
#23741: DOC: signal.hilbert : example uses instantaneous frequency
#23743: Cygwin interpolate test xfail
#23744: ENH: stats.bootstrap: array API support
#23745: DOC: stats.beta: document issues with 3- and 4- parameter MLE
#23746: ENH: add Array API support to RBFInterpolator
#23752: DOC: Move a paragraph from code to markdown in ndimage tutorial
#23753: MAINT: interpolate: use xp-capabilities for
make\_functions#23755: BUG: interpolate: fail gracefully if all weights are zero
#23758: ENH: implement
gdtrixandgdtriausing xsf’s incomplete…#23759: ENH: interpolate: make NdBSpline and RGI Array API compatible
#23764: DOC: special: consistent modified Bessel order and fix Hankel…
#23765: TST: signal: isolate use of alternative backend only to function…
#23767: BUG: signal: Fix
test_closest_STFT_dual_window_roundtrip…#23769: DOC:
special._specfun.eulerb: fix cython docstring#23770: MAINT: clean up some outdated CPython C API idioms
#23771: BUG: odr: prevent segfault with explicit model and job=1 (#23763)
#23772: ENH: stats.permutation_test: add array API support
#23773: DOC/DX: Document use of
--in spin ipython and spin python#23775: ENH: stats.power: add array API support
#23779: ENH: stats.false_discovery_control: add array API support
#23780: ENH: interpolate.RegularGridInterpolator: remove zeroes from…
#23782: ENH: speedup quantile by not using stable sort
#23788: TST: some more test tol bumps
#23789: DOC: Improve formatting for the
scipy.optimizemodule#23792: CI: use Pixi for a windows job
#23795: MAINT: stats.iqr: prepare for array API translation
#23796: TST: still more test tolerance bumps to accommodate Accelerate
#23797: ENH: sparse: add
copy=Falsearg toastype()where it…#23802: BENCH: add simple benchmark for scipy.stats.quantile
#23803: ENH: stats.sigmaclip: add array API support
#23804: DOC: Convert a math narrative into LaTeX format [docs only]
#23807: ENH: stats.yeojohnson_llf: add array API support
#23808: DOC: Remove two references to files that do nothing
#23809: ENH: stats.median_abs_deviation: add array API support
#23810: ENH: stats.brunnermunzel: add array API support
#23812: DOC: fix typo
#23816: DOC:
special.diric: “Dirichlet function” -> “Dirichlet…#23819: ENH: stats.cramervonmises_2samp: vectorize statistic and asymptotic…
#23822: ENH: stats.kruskal: vectorize implementation
#23823: MAINT: interpolate: mark legacy functions out of scope for Array…
#23824: DOC:
special.mathieu_odd_coef: “even” -> “odd”#23828: ENH: spatial.transform.Rotation Add axis argument to
Rotation.mean#23831: DOC: Correct a few typos and indentations
#23834: ENH: stats.friedmanchisquare: simplify and vectorize implementation
#23835: DOC: stats.quantile: clarify broadcasting behavior
#23837: ENH: stats.mood: vectorize implementation
#23838: TST: special: Update tests for some Mathieu functions.
#23840: ENH: stats.levene: vectorize implementation
#23841: BLD: bump wheel build image
#23843: ENH: stats.ansari: vectorize implementation
#23844: DEV: move Pixi workspace to repo root
#23845: DOC: fix denominator in scipy.stats.kstatvar for var(k2)
#23846: DOC: Remove an invalid URL in References
#23847: ENH: stats.fligner: vectorize implementation
#23849: ENH: stats.chatterjeexi: add array API support
#23850: DOC: Improve documentation for the directed Hausdorff distance
#23851: ENH: stats.spearmanrho: array API compatible substitute for
spearmanr#23853: DOC: spin: Copy-edit help text for python and ipython commands.
#23855: TST: stats.multiscale_graph_correlation: update reference values
#23856: TST: sparse.linalg.tfqmr: avoid failure due to platform-dependent,…
#23858: DOC: Make a DOI clickable
#23861: DOC: Correct typos: an 1d -> a 1d
#23862: ENH: stats.kruskal: add array API support
#23863: ENH: special: add handling of double type for
_gen_harmonic...#23865: MAINT/TST: stats.yeojohnson_llf/boxcox_llf: fix/test nan_policy/keepdims…
#23866: DOC: Add reference paper to
scipy.spatial.KDTree#23869: ENH: spatial.transform.Rotation: Add shape to
randomand…#23870: ENH: stats.mannwhitneyu: add array API support
#23871: DOC: stats: Fix some math markup in the boxcox docstring.
#23873: DOC: Update
scipy.stats.moyalreference to new URL#23874: TST: spatial.transform.Rotation: fix
Rotation.randomtests#23875: ENH: spatial.transform.RigidTransform: implement
shapefor…#23876: DOC: Add DOI to reference paper in
fractional_matrix_power…#23877: MAINT/CI: use
dtachfor modularity enforcement#23880: TST: interpolate.AAA: bump test tolerance
#23881: ENH: stats.epps_singleton_2samp: vectorize implementation
#23883: DOC: forward port 1.16.3 relnotes
#23887: DOC: correct grammar issues in code comments
#23889: ENH: stats.levene: add array API support
#23890: DOC/TST: stats.quantile: document and test JAX support
#23891: ENH: stats.iqr: add array API support
#23893: MAINT: stats.epps_singleton_2samp: NaNs/Infs in input -> NaNs…
#23895: BUG: linalg: fix MKL ILP64 symbol misnamings
#23897: DOC: sparse: Add examples sections to three new function doc_strings
#23898: ENH: stats.wilcoxon: add array API support
#23899: ENH: stats.friedmanchisquare: add array API support
#23903: TST: signal: mark failing tests to unblock CI
#23904: BENCH: integrate: skip xslow benchmarks in CI
#23905: CI: free up disk space in Intel oneAPI workflow
#23911: TST: stats: avoid modifying shared self.u
#23912: ENH: stats.fligner: add array API support
#23914: ENH:integrate: Rewrite LSODA in C
#23915: BUG:
special: Fix convergence criterion ineval_{legendre,…#23917: DOC: special: Ellipsoidal harmonic functions aren’t Lame
#23920: DEV: update
CODEOWNERS#23921: BUG:signal: Ensure consistent dtypes for filter functions across…
#23922: BUG: optimize: add py314 wrapper for
inspect.signatureof…#23928: ENH: stats.cramervonmises_2samp: add array API support
#23929: ENH: stats.epps_singleton_2samp: add array API support
#23930: ENH: stats._xp_searchsorted: private vectorized searchsorted
#23933: ENH: spatial.transform: add
axisargument toRigidTransform.mean#23934: DOC: spatial: RigidTransform docs tweaks
#23936: BLD/CI: Add ASAN suppressions and CI job
#23937: TST:
spatial.transform.RigidTransform: Add ND concatenation…#23940: BUG: sparse.csgraph: remove rel import to fix Cython 3.2
#23941: ENH: stats.quantile: add support for frequency weights
#23942: DOC correct “shape” type for “scipy.sparse.random_array”
#23948: DOC: stats.cumfreq: correct bin edges of plot
#23952: MAINT: stats: silence the “unused function” build noise from…
#23954: BENCH: interpolate: fix the RGI subclassing benchmark
#23955: DOC: list classes in Array API tables
#23956: MAINT: add
xp-capabilitiestoBSpline#23963: ENH:integrate: Rewrite VODE and ZVODE in C
#23964: ENH: stats.ks_1samp: vectorize implementation
#23966: ENH: stats.cramervonmises: vectorize and add array API support
#23970: ENH: stats.ks_1samp: add array API support
#23971: ENH: stats.ansari: add array API support
#23974: ENH: stats: Updated tabulated critical values for the normal…
#23975: MAINT: signal: remove an obsolete workaround in detrend
#23976: DOC: interpolate.interpn: add value comparison to example
#23979: BUG: special: fix
comb(n, 0, repetition=True)returning0…#23981: ENH: stats._xp_searchsorted: simplification, edge case handling,…
#23982: DEV: update Pixi workspace name and description
#23984: DEV: update CODEOWNERS
#23986: MAINT: sync and update scipy-openblas to 0.3.30.0.8
#23987: CI: reduce cache usage in GitHub Actions
#23988: CI: add
environmentsargs tosetup-pixito log dependencies#23993: BLD/DEV: force openblas on Windows
#23994: DOC/BLD: Clarify
yumusage in RHEL#24003: MAINT: stats: re-enable the “unused function” warning in qmc…
#24004: CI: use stable numpy release in free-threading job
#24006: MAINT: removes a reference cycle in
optimize.differential_evolution#24007: TST: optimize.least_squares: reduce process count and thread…
#24008: BUG: fix interpreter crashes in special functions related to…
#24012: TST: optimize.minimize: make trust-constr test thread safe by…
#24013: BUG: Ensure C-contiguous inputs in
_fitpack_repro._validate_inputs…#24016: CI: run cache-heavy OneAPI job on main every 2 days to optimize…
#24017: BUG: special.assoc_legendre_p: update
xsfto fixz=-1,…#24023: TST: integrate.qmc_quad: tolerance bump
#24024: ENH/TST: signal: Add xp_capabilities for scipy.signal
#24025: DOC: stats: add equations for Cramer von Mises functions
#24028: MAINT:integrate: Initialize variable to silence compiler warnings
#24029: ENH: stats.mood: add array API support
#24033: DEP: deprecate
scipy.odr#24036: CI: run Windows OneAPI job on main every 2 days to prefetch cache
#24039: DOC/TST: fft: mark array api coverage with
xp_capabilities#24040: DOC: add LFX Insights badge to README
#24044: DOC: optimize.minimize: fix
subproblem_maxiterdocs fortrust-exact…#24045: MAINT: signal: remove stray np.testing assertions
#24047: TST: stats.t: add tolerance to moment test
#24048: DEV: switch from
dtachtotach#24049: MAINT: speed up
xp_promoteandxp_result_typefor big…#24050: DEV: remove unused
build-mkltask from workspace#24053: BUG: signal: fix a GetWindow test
#24056: ENH: spatial: factor out
from_matrixorthogonalization for…#24057: MAINT: Fix a deprecation warning coming from pytest-run-parallel
#24059: CI: revert pre-release NumPy and no isolation from np2 release…
#24061: MAINT: fix a typo in nnls documentation
#24063: TST: linalg/solve: reenable and fix the “pos def” solve test
#24067: DEV: add test-coverage and test-xslow tasks
#24068: DEV: tach: use
respect_gitignore = "if_git_repo"#24070: MAINT: interpolate/RBF: use fixed-width ints with pythran
#24071: DEV: add
benchtask#24076: BUG: Return zero for out-of-range derivative orders in
NdBSpline...#24077: MAINT: lock Pixi to fix CI
#24080: DEP: signal.lombscargle: deprecate positional args, warn on
precenter=False#24083: ENH: stats.f_oneway: add array API support
#24085: DOC: linalg: edit the doc note: we no longer import numpy linalg…
#24092: ENH: spatial.transform: Add
assume_validargument toRotation.from_matrix`…#24094: TST: fft:
allow_dask_computefor alluarray-using funcs#24095: DOC: differential_evolution - fix typo in custom strategy example
#24097: ENH: stats: added marginal function to
stats.multivariate_t#24098: TST: linalg: unskip a test
#24106: BUG: interpolate: Fix h[m] -> h[n] typo in _deBoor_D derivative…
#24107: ENH: linalg/solve: move the tridiagonal solve slice iteration…
#24113: DOC: signal: mark some legacy functions as out of scope for array…