SciPy 1.14.0 发行说明#

SciPy 1.14.0 是 3 个月辛勤工作的结晶。它包含许多新特性、大量错误修复、改进的测试覆盖率和更好的文档。此版本中有一系列弃用和 API 更改,详情如下。建议所有用户升级到此版本,因为它包含大量的错误修复和优化。在升级之前,我们建议用户检查自己的代码是否使用了已弃用的 SciPy 功能(为此,请使用 python -Wd 运行代码并检查是否存在 DeprecationWarning)。我们的开发重心现在将转向 1.14.x 分支上的错误修复版本,以及主分支上的新功能添加。

此版本要求 Python 3.10+ 和 NumPy 1.23.5 或更高版本。

要在 PyPy 上运行,需要 PyPy3 6.0+。

本次发行亮点#

  • SciPy 现在支持 macOS 13.3 中引入的新 Accelerate 库,并且为 macOS >=14 构建了基于 Accelerate 的轮子,从而显著提升了许多线性代数操作的性能。

  • scipy.optimize.minimize 中添加了一个新方法 cobyqa,它是 COBYQA(Constrained Optimization BY Quadratic Approximations,基于二次逼近的约束优化)的接口,一个无导数优化求解器,旨在取代 COBYLA,由香港理工大学应用数学系开发。

  • scipy.sparse.linalg.spsolve_triangular 在许多情况下现在速度快了一个数量级以上。

新特性#

scipy.fft 改进#

  • 添加了一个新函数 scipy.fft.prev_fast_len。此函数查找小于目标长度的最大 FFT 基数组合。它对于在 FFT 之前丢弃最少数量的样本很有用。

scipy.io 改进#

  • wavfile 现在支持读写 RF64 格式的 wav 文件,允许处理大于 4 GB 的文件。

scipy.constants 改进#

  • 已添加对数组 API 标准的实验性支持。

scipy.interpolate 改进#

scipy.optimize 改进#

scipy.signal 改进#

  • scipy.signal.minimum_phase 有一个新参数 half,允许提供与线性相位 FIR 滤波器系数长度相同且具有相同幅度频谱的滤波器。

scipy.sparse 改进#

  • 稀疏数组现在支持 COO、DOK 和 CSR 格式的 1D 形状。这些是目前我们打算支持 1D 形状的所有格式。其他稀疏数组格式对于 1D 输入会引发异常。

  • 稀疏数组方法 min/nanmin/argmin 及其 max 模拟现在返回 1D 数组。对于 min/nanmin,结果仍然是 COO 格式的稀疏数组;对于 argmin,结果是密集的 np.ndarray

  • 迭代 csr_arraycsc_array 会产生 1D (CSC) 数组。

  • 稀疏矩阵和数组对象的 reprstr 输出得到改进。

  • 已添加一个特殊情况来处理 dia_array 与标量相乘,这避免了潜在昂贵的 CSR 格式转换。

  • 已添加 scipy.sparse.csgraph.yen,允许在有向或无向图上使用 Yen 的 K-最短路径算法。

  • DIA 格式稀疏数组和矩阵之间的加法现在更快。

  • scipy.sparse.linalg.spsolve_triangular 在许多情况下现在速度快了一个数量级以上。

scipy.spatial 改进#

  • Rotation 支持一种替代的“标量优先”四元数分量排序约定。它通过 from_quatas_quat 方法的关键字参数 scalar_first 提供。

  • Rotation 对象的反演有一些小的性能改进。

scipy.special 改进#

scipy.stats 改进#

Array API 标准支持#

SciPy 最新版本中现有子包已添加对 NumPy 以外的数组库的*实验性*支持。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 PyTorch、JAX 或 CuPy 数组作为数组参数来测试这些功能。

截至 1.14.0,支持:

已弃用特性#

向后不兼容的更改#

  • 许多 scipy.stats 函数现在在输入样本过小(例如大小为零)时会产生标准化警告消息。此前,这些函数可能会引发错误、发出一个或多个信息量较少的警告,或者不发出警告。在大多数情况下,返回结果不变;在几乎所有情况下,正确的结果都是 NaN

已过期弃用#

正在努力落实长期存在的弃用。以下先前已弃用的功能受到影响:

  • 稀疏数组的几个先前已弃用的方法已被移除:asfptypegetrowgetcolget_shapegetmaxprintset_shapegetnnzgetformat。此外,.A.H 属性也被移除。

  • scipy.integrate.{simps,trapz,cumtrapz} 已被移除,取而代之的是 simpsontrapezoidcumulative_trapezoid

  • scipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk, mres,lgmres,minres,qmr,tfqmr}tol 参数已被移除,取而代之的是 rtol。此外,这些函数的 atol 默认值已更改为 0.0

  • scipy.sparse.linalg.gmresrestrt 参数已被移除,取而代之的是 restart

  • scipy.stats.kendalltauinitial_lexsort 参数已被移除。

  • scipy.linalg.pinvcondrcond 参数已被移除。

  • scipy.integrate.simpsoneven 参数已被移除。

  • scipy.linalg.{eigh,eigvalsh} 中的 turboeigvals 参数已被移除。

  • scipy.special.comblegacy 参数已被移除。

  • signal.{firls, firwin, firwin2, remez}hz/nyq 参数已被移除。

  • 不再属于公共接口但可通过已弃用子模块访问的对象已被移除。

  • float128float96 和对象数组现在在 scipy.signal.medfiltscipy.signal.order_filter 中引发错误。

  • scipy.interpolate.interp2d 已被空存根替换(将来会完全移除)。

  • 与函数签名的更改(例如移除已弃用的关键字)相吻合,我们已弃用受影响函数的关键字参数的位置用法,现在将引发错误。受影响的函数有:

    • sparse.linalg.{bicg, bicgstab, cg, cgs, gcrotmk, gmres, lgmres, minres, qmr, tfqmr}

    • stats.kendalltau

    • linalg.pinv

    • integrate.simpson

    • linalg.{eigh,eigvalsh}

    • special.comb

    • signal.{firls, firwin, firwin2, remez}

其他更改#

  • SciPy 现在使用 C17 作为构建 C 标准,而不是 C99。C++ 标准仍然是 C++17。

  • macOS Accelerate 在 macOS 13.3 中获得了重大升级,现在已得到支持。这为线性代数操作带来了显著的性能改进,并使二进制轮子更小。

  • 交叉编译应该更流畅,不再需要 QEMU 或类似工具来运行交叉解释器。

  • SciPy 的几个部分已添加对 JAX 后端的实验性数组 API 支持。

贡献者#

  • 姓名(提交次数)

  • h-vetinari (34)

  • Steven Adams (1) +

  • Max Aehle (1) +

  • Ataf Fazledin Ahamed (2) +

  • Luiz Eduardo Amaral (1) +

  • Trinh Quoc Anh (1) +

  • Miguel A. Batalla (7) +

  • Tim Beyer (1) +

  • Andrea Blengino (1) +

  • boatwrong (1)

  • Jake Bowhay (51)

  • Dietrich Brunn (2)

  • Evgeni Burovski (177)

  • Tim Butters (7) +

  • CJ Carey (5)

  • Sean Cheah (46)

  • Lucas Colley (73)

  • Giuseppe “Peppe” Dilillo (1) +

  • DWesl (2)

  • Pieter Eendebak (5)

  • Kenji S Emerson (1) +

  • Jonas Eschle (1)

  • fancidev (2)

  • Anthony Frazier (1) +

  • Ilan Gold (1) +

  • Ralf Gommers (125)

  • Rohit Goswami (28)

  • Ben Greiner (1) +

  • Lorenzo Gualniera (1) +

  • Matt Haberland (260)

  • Shawn Hsu (1) +

  • Budjen Jovan (3) +

  • Jozsef Kutas (1)

  • Eric Larson (3)

  • Gregory R. Lee (4)

  • Philip Loche (1) +

  • Christian Lorentzen (5)

  • Sijo Valayakkad Manikandan (2) +

  • marinelay (2) +

  • Nikolay Mayorov (1)

  • Nicholas McKibben (2)

  • Melissa Weber Mendonça (7)

  • João Mendes (1) +

  • Samuel Le Meur-Diebolt (1) +

  • Tomiță Militaru (2) +

  • Andrew Nelson (35)

  • Lysandros Nikolaou (1)

  • Nick ODell (5) +

  • Jacob Ogle (1) +

  • Pearu Peterson (1)

  • Matti Picus (5)

  • Ilhan Polat (9)

  • pwcnorthrop (3) +

  • Bharat Raghunathan (1)

  • Tom M. Ragonneau (2) +

  • Tyler Reddy (101)

  • Pamphile Roy (18)

  • Atsushi Sakai (9)

  • Daniel Schmitz (5)

  • Julien Schueller (2) +

  • Dan Schult (13)

  • Tomer Sery (7)

  • Scott Shambaugh (4)

  • Tuhin Sharma (1) +

  • Sheila-nk (4)

  • Skylake (1) +

  • Albert Steppi (215)

  • Kai Striega (6)

  • Zhibing Sun (2) +

  • Nimish Telang (1) +

  • toofooboo (1) +

  • tpl2go (1) +

  • Edgar Andrés Margffoy Tuay (44)

  • Andrew Valentine (1)

  • Valerix (1) +

  • Christian Veenhuis (1)

  • void (2) +

  • Warren Weckesser (3)

  • Xuefeng Xu (1)

  • Rory Yorke (1)

  • Xiao Yuan (1)

  • Irwin Zaid (35)

  • Elmar Zander (1) +

  • Zaikun ZHANG (1)

  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (4) +

共有 85 人为此版本做出了贡献。姓名旁带有“+”的人是首次贡献补丁。此姓名列表自动生成,可能不完全完整。

1.14.0 版本已关闭的问题#

  • #5369: fsolve & root 函数调用计数不正确

  • #7203: vtk 与 scipy.interpolate (和 mvpoly.rbf) 不兼容

  • #8056: cho_factor 和 cho_solve 不支持 (0,0) 形状矩阵

  • #8083: special.hyp2f1 在 c-a-b 是整数时返回错误的值

  • #8510: ValueError: 无法创建 intent(cache|hide)|optional 数组–…

  • #8848: `integrate.solve_ivp` 尝试在更长时间内评估函数…

  • #8856: LinearNDInterpolator 不是线程安全的

  • #9198: `solve_ivp` RK45 可以在晚于指定时间评估函数…

  • #9307: 功能请求:使 `scipy.stats.pearsonr` 接受 2D 数组

  • #9459: BUG: linalg: lu 和分解不支持 (0, 1) 或 (0,…

  • #12515: scipy.linalg.pinvh 给出不正确的结果

  • #14244: ValueError: 进入 DGESDD 时参数 10 具有非法值…

  • #14389: `linalg.inv` 对形状为 (0, 0) 的数组失败

  • #14806: ENH: 添加 Irwin-Hall (Uniform Sum) 和 Bates (Uniform Mean)…

  • #15722: DEP: special.comb: 弃用非整数的 `exact=True`

  • #16131: BUG: spsolve_triangular 比 spsolve 慢得多

  • #16583: 合并 `stats._boost` 中的扩展

  • #16748: 任何 `cython_*` API 都没有使用 Cython 的测试

  • #16926: TEST/BUG: test_solvers::test_solve_discrete_are 中的容差违规

  • #17084: ENH: 导出 detrend() 的已移除组件

  • #17341: BUG: `solve_ivp` 在请求区间外评估,用于…

  • #17559: ENH: _mannwhitneyu.py 精确 MWU 统计计算可能…

  • #17658: linalg 中空矩阵的不一致支持

  • #19322: BUG: `rv_discrete.expect` 在位置重复时失败

  • #19348: BUG: stats.nct.pdf 与 MATLAB 相比行为不一致…

  • #19586: BUG: scipy.signal.group_delay 对复系数不正确

  • #19598: BUG: `scipy.sparse.linalg.svds` 对大型稀疏矩阵的 bug…

  • #19649: ENH: as_quat() 和 from_quat() 似乎颠倒了 x,y,z,w 与…

  • #19734: 来自 HiGHS 的构建警告

  • #19872: BUG: sp.stats.wilcoxon 在…时 p 值计算错误

  • #19905: DEP: 从私有化模块中移除已弃用的导入

  • #19918: ENH: 将 COBYQA 添加到 `scipy.optimize`?

  • #19921: BUG: BenchGlobal 输出与 BenchLeastSquares 不一致…

  • #19964: MAINT:BLD:special: 大修 _ufuncs 和 cython_special 机制

  • #20124: BUG: stats.skewnorm.ppf 在中等程度下返回错误的值…

  • #20128: BUG: `csr_array(int())` 错误

  • #20208: BUG: 由于 `invalid value encountered in _beta_ppf` 导致的测试失败…

  • #20247: ENH: Akima1DInterpolator 外推

  • #20256: MAINT, BLD: macOS ARM 静态库上的符号可见性警告…

  • #20277: jupyterlite-sphinx 集成后文档构建非常嘈杂

  • #20296: CI: jupyterlite-sphinx pin 打破了最近的文档构建

  • #20324: MAINT, BUG (?): pearsonr 统计量返回类型更改

  • #20357: BUG: 1.12 版本中 griddata 函数的内存使用

  • #20358: TST, MAINT: TestGroupDelay::test_singular against…失败

  • #20377: ENH: sparse: 更新 str dunder 以处理 1D (和更好的 2D)

  • #20378: ENH: sparse: 更新 repr dunder 以处理 1D (可能更好的 2D)

  • #20385: MAINT: special 版本十六进制清理

  • #20386: BUG: scipy.stats.kstest 从 scipy 1.12 开始返回 NaN

  • #20388: DOC: 版本切换器在移动设备上未垂直居中

  • #20394: BUG: iirpeak/iirnotch/iircomb 滤波器…不必要的计算

  • #20399: BUG: scipy.special.logsumexp 对零大小…引发 ValueError

  • #20419: BUG: nightly: .special.jv 现在将 float32 输入提升为 float64

  • #20434: BUG: sparse dia_array 乘法后变为 csr

  • #20455: BUG: signal.iirfilter: 整数输入溢出

  • #20458: MAINT: 更多与版本升级相关的潜在清理

  • #20461: DOC: 发行流程文档的一些可能更改

  • #20466: BUG: scipy.linalg.bandwidth 返回不正确的上限带宽

  • #20470: BUG: `TestNNLS.test_nnls_inner_loop_case1` 在 MKL 中失败

  • #20486: DEP: 弃用并移除 slur-adjacent “trapz” 的剩余用法

  • #20488: BUG: 当给定无效边界时,`_minimize_neldermead` 引发…

  • #20492: DOC: linalg.solve_discrete_lyapunov: 死链接

  • #20502: BUG: special.hyp2f1: 本地测试失败

  • #20509: DOC: 澄清 `sparse.csgraph.dijkstra` 对于 `directed=False` 的行为

  • #20523: CI/BLD: macOS x86_64 的夜间轮子构建失败

  • #20535: BUG: generate_f2py mod 被错误的解释器调用

  • #20540: BUG: pytest scipy/linalg/tests/test_extending.py 在 Cython 中失败…

  • #20551: DOC/DEV: 明确记录哪些代码具有活跃的上游仓库

  • #20562: BUG: _bracket_minimum 中无效的默认括号选择。

  • #20564: TST: stats 数组 API test_skew_constant_value[torch] 失败…

  • #20584: BUG: `optimize.linprog` 在 `integrality` 为 `list` 类型时失败…

  • #20587: BLD: 来自 `scipy/special/special/gamma.h` 的警告

  • #20598: ENH: special: 添加 wright_bessel 的对数

  • #20603: DOC: 邮件列表切换到 discourse 的文档

  • #20614: DOC: dual_annealing 优化器未将边界传递给最小化器…

  • #20618: BUG: scipy ‘minimize’ 与 method=’trust-constr’ 带有等式…

  • #20620: DOC: interp2d 过渡指南的建议改进

  • #20641: BUG: stats: 两个新的 XSLOW 测试失败

  • #20661: MAINT, TST: test_axis_nan_policy_decorated_positional_args 失败…

  • #20662: DOC: cont2discrete() 引发的错误消息中缺少空格

  • #20674: DOC: signal.ellipap 参考中作者姓名中的拼写错误

  • #20683: DOC: signal.iirdesign 引发的 ValueError 中的拼写错误

  • #20691: ENH: 重新引入 Apple Accelerate 支持

  • #20697: BUG: special: `cephes/polevl.h` 中 `ratevl` 的算法错误

  • #20755: BUG: stats: 两个新的测试失败

  • #20768: BUG: optimize.minimize: `lbfgs` 中的垃圾回收

  • #20783: BUG: PyPy3.10 7.3.16 构建失败:`error: ‘Py_Initialize’…

  • #20797: BUG: special.hyp1f1: 对复数参数损坏

  • #20802: MAINT, TST: pytest-fail-slow 和本地并发运行/可变性

  • #20840: BUG: scipy 中的第一个共享库无法被 MSVC 消费

  • #20850: DOC: stats.bootstrap: 改进多维…文档

  • #20852: BUG: Library not loaded: @rpath/libgfortran.5.dylib for scipy…

  • #20860: BUG/BLD: scipy-1.13.1 在 msvc 中构建失败

  • #20901: BUG: `zsh: abort python` 在 `scipy.linalg.sqrtm` 在空…后

  • #20911: TST: TestEig.test_singular 在通用 BLAS 下的容差失败…

  • #20921: DOC: stats: `*Result` 类的 docstring 错误

  • #20938: TST: SciPy 1.14.0rc1 在 linux-{aarch64,ppc64le} 上的容差违规

  • #20943: TST: SciPy 1.14.0rc1 在 windows 上的测试失败

1.14.0 版本的拉取请求#

  • #13534: ENH: 为 HessianUpdateStrategy 添加更多初始化方法

  • #15321: ENH: fft: 添加 `prev_fast_len` 以补充 `next_fast_len`

  • #17348: BUG: integrate: 使 `select_initial_step` 意识到积分…

  • #17924: ENH: sparse.linalg: 加速 `spsolve_triangular`

  • #18926: ENH: 移动 symiirorder1/2, cspline2d, qspline2d 和 spline_filter…

  • #19561: ENH: stats.power: 添加函数以模拟假设检验功效

  • #19627: FIX: 正确计算复系数 TF 的 group_delay

  • #19673: DEP: signal: 使用 medfilt 和 order_filter 与…引发错误

  • #19706: ENH: 向 minimum_phase 添加 half=True kwarg

  • #19816: BLD: 添加 macOS 13.3+ 的 Accelerate 支持

  • #19900: MAINT/TST: fft: 移除 xp 后端跳过,测试 `fftfreq` `device`

  • #19904: MAINT: 移除私有模块中的偶然导入

  • #19923: ENH: stats.mannwhitneyu: 替换精确 p 值计算

  • #19954: MAINT: 将 wright_bessel 函数翻译成 C++

  • #19960: DOC: 向 `scipy.interpolate.spalde` 添加示例

  • #19994: ENH: 将 cobyqa 添加到 scipy.optimize。

  • #20073: ENH: special: 修复 `boxcox` 中的过早溢出

  • #20079: ENH: io: 读取和写入大于 4GB 的 wav 文件

  • #20085: ENH: array types: 添加 JAX 支持

  • #20089: ENH: 将复值 hyp2f1 翻译成 C++ 并进行改进

  • #20127: ENH/TST: 重构 refguide-check,第三次尝试

  • #20137: ENH: stats.pearsonr: 添加对 `axis` 参数的支持

  • #20187: ENH: sparse.csgraph: Yen K-最短路径

  • #20199: DOC/DEV/MAINT: 更新 core-dev 指南

  • #20202: DOC: 重新组织 stats 用户指南部分内容

  • #20255: TST: linalg: 重新启用 gges[float32] 测试

  • #20257: BUG: 防止 `openblas_support.py` 中的文件描述符泄漏…

  • #20260: ENH: 开始大修 ufunc 机制

  • #20265: ENH: optimize: 常量限定 Cython 数组参数

  • #20269: REL: 设置版本为 1.14.0dev0

  • #20273: MAINT/DEV: 强制执行最低 `ruff` 版本

  • #20275: MAINT/DEV: 添加自动修复到 `dev.py lint`

  • #20278: DEP: integrate: 移除 simps,trapz,cumtrapz

  • #20281: BUG: optimize: 修正 `nfev` 值

  • #20283: DEP: sparse: 弃用 dok_array/matrix 的 conjtransp() 方法…

  • #20284: ENH: stats.pearsonr: 添加数组 API 支持

  • #20289: DOC: 固定 Jupyterlite Sphinx 以避免嘈杂的文档构建

  • #20292: ENH: stats.moment: 添加数组 API 支持

  • #20295: BUG: linalg: 支持空数组

  • #20297: BUG: linalg: 对 pinvh 使用 SYEV 而非 SYEVR

  • #20298: DOC: linalg: 提及 eigenvalues_only=True/False 可能会改变…

  • #20304: ENH: interpolate: 允许 Akima 外推

  • #20310: MAINT: 将 jupyterlite-sphinx 固定到 >=0.13.1

  • #20315: DOC: 添加如何调试线性代数相关问题的文档

  • #20317: MAINT/DEV: 将 `skip_if_array_api` 重命名为 `skip_xp_backends`

  • #20320: ENH: special 中的通用 ufuncs

  • #20321: BUG: 修复 scipy.special seterr, geterr, errstate

  • #20325: MAINT: 改进 ndimage.binary_erosion 的性能

  • #20326: MAINT: 替换 np.prod 的使用

  • #20328: DOC: 修复 odds_ratio 中的小拼写错误

  • #20329: MAINT: 更新 `array_api_compat` 到 v1.5.1

  • #20331: MAINT: 修复 Cythonize 在优化中带有 const 视图的 bug

  • #20335: TST: linalg: 撤销 QZ 和 DARE 的 xfails

  • #20342: BLD: linalg: 修复 .pyf.src 文件的重建依赖项

  • #20354: MAINT: 解除 pytest 的轮子限制

  • #20355: TST: signal: 提高新 `signal.group_delay` 测试的容差

  • #20356: BLD: 更新 pyproject.toml 中 numpy 的 numpy 构建依赖项…

  • #20367: STY: 总是 `import numpy as np`

  • #20373: MAINT: 放弃 Python 3.9 和 NumPy 1.22.x

  • #20380: MAINT: 前向移植 1.13.0 发行说明

  • #20382: MAINT: lint: 强制执行 `numpy as np` 别名

  • #20384: ENH:special: 重新将 cdflib 用 C 语言重写

  • #20390: MAINT: 将 cephes 的所有内容翻译成 C++

  • #20393: MAINT/BLD: 移除 `stats._boost` 并添加与分布相关的…

  • #20397: ENH: 支持 Rotation 中四元数分量的标量优先顺序

  • #20403: ENH: special: 为 amos 添加 ufuncs

  • #20404: BUG: interpolate: 修复 2 个类的高内存使用

  • #20405: BUG: 修复 Amos 和 Cephes yv 中掩盖彼此的一对 bug

  • #20413: MAINT: 供应商 npyrandom 而不是使用静态库

  • #20416: ENH: optimize._chandrupatla: 允许无限函数值在…

  • #20417: ENH: 使 cython_special 成为实际代码,而不是自动生成

  • #20418: BUG: signal: 更正 `iir{peak,notch,comb}` 滤波器增益

  • #20420: DOC: stats: 加速非常慢的 `bootstrap` 示例

  • #20421: 为 amos 函数添加 float32 重载

  • #20422: TST: 测试 cimporting Cython API

  • #20424: MAINT:special: 向 cdflib 添加许可证并移除旧的 pxd 文件

  • #20425: MAINT: 修复 README 中 DOI 可见性徽章

  • #20426: DOC: 添加如何使用 gdb 调试 linalg 问题的提示

  • #20427: DOC: 加速一些示例

  • #20438: ENH: 翻译 `sph_harm` Cython->C++,添加 `sph_harm_all`…

  • #20441: BLD: 安装 cython_special.pxd

  • #20443: MAINT: sparse: 更新 EfficiencyWarning 消息以反映 array/matrix

  • #20445: ENH: sparse: 特殊情况 DIA * 标量

  • #20446: MAINT: 移除重复的单词拼写错误

  • #20450: BLD: 避免在 meson.build 文件中设置环境变量

  • #20453: DOC: special: 为 pdtrc, pdtri, pdtrik 添加示例

  • #20454: DOC: 更新工具链路线图 (1/N)

  • #20456: BUG: signal.iirfilter: 避免整数溢出

  • #20457: ENH: Add `scipy.special._ufuncs._iv_ratio`

  • #20460: DOC: 移除额外的 css 颜色和设置

  • #20462: DOC: 更新 readme,添加新论坛链接

  • #20463: MAINT: 重构特殊函数 ufunc 生成并整合…

  • #20465: MAINT: special: 修复未使用变量的编译器警告

  • #20467: MAINT: stats._contains_nan: 修复 -inf 和 inf 在…时的 bug

  • #20468: TST: stats: 标记测试为 slow/xslow

  • #20469: MAINT/CI: 从 refguide-check 中移除 doctesting

  • #20477: BLD: 确保所有静态库都使用隐藏可见性

  • #20478: CI/MAINT: 将最低所需编译器版本提高到 GCC…

  • #20480: CI: 失败慢速测试

  • #20481: ENH: stats: 添加 Irwin-Hall 分布

  • #20482: CI: 标准化作业名称

  • #20483: ENH: special: 将 `sph_bessel` 翻译成 C++,重构 `cyl_bessel`

  • #20487: TST: 调整其他非常慢的测试

  • #20490: BUG: sparse: 对数组类引发错误,记录/测试旧…

  • #20494: BUG: _qmc.py::_random_oa_lhs 产生相关样本

  • #20495: BUG: 移除 SciPy.optimize 中 ValueError 的关键字参数

  • #20497: DEP: interpolate: 用存根替换 interp2d

  • #20498: DEP: 将 sparse 方法切换为仅关键字参数;移除 tol/restrt kwarg

  • #20499: DEP: 执行稀疏数组 API 弃用

  • #20500: DOC: 更新 `Scipy.linalg._solvers.py` 中的死链接:…

  • #20501: MAINT: optimize._chandrupatla: 减少 xatol

  • #20503: MAINT: spatial: 修复 `query_ball_point` 的类型注释

  • #20508: DOC: 修复旧版警告样式

  • #20510: BLD: macOS 14+ 的 Accelerate 轮子

  • #20511: BUG: 修复 SciPy.special.logsumexp 对零大小数组引发 ValueError 的问题

  • #20515: BLD: 默认使用 C17 而非 C99

  • #20522: TST: 跳过或修复某些 macOS 构建上的一些失败测试

  • #20526: BLD: 将 Clang/LLVM 的下限从 14.0 调整到 12.0

  • #20529: MAINT: 移除重复的“is”拼写错误

  • #20534: BUG: 修复 scipy.linalg.bandwidth 不正确的 upper_band 值

  • #20536: CI: 检查文件中是否首先包含了 Python.h

  • #20538: TST: _lib: 移除对缺少 `stacklevel` 的冗余测试

  • #20541: ENH: stats.skew: 添加数组 API 支持

  • #20542: BLD: Accelerate 构建不应定义 `NO_APPEND_FORTRAN`

  • #20545: ENH: stats.ttest_1samp: 添加数组 API 支持

  • #20546: DOC: 使用更正确和包容的代词

  • #20547: DOC: stats.linregress: 拆分 stats/mstats 文档

  • #20548: TST: 跳过可编辑安装的 Cython 测试

  • #20550: DEP: stats: 将 kendalltau 切换为仅关键字参数,移除 initial_lexsort…

  • #20554: DEP: integrate: 将 simpson 切换为仅关键字参数,移除 even kwarg

  • #20556: DOC: 发行流程更新

  • #20559: DOC/DEV: 添加关于供应商代码的 core-dev 页面

  • #20560: DEP: linalg: 从 linalg.{eigh,eigvalsh} 移除 turbo / eigvals kwargs…

  • #20563: BUG: 修复 _bracket_minimum 中无效的默认括号选择

  • #20565: DEP: linalg: 从 linalg.pinv 移除 cond / rcond kwargs 和…

  • #20568: DOC: 更改 approx_fprime doctest

  • #20572: MAINT: 在 `scipy/_build_utils` 中供应商 Tempita

  • #20575: TST: stats.skew: 根据需要 assert_equal -> xp_assert_equal

  • #20577: DEV: 添加 unicode 检查到 pre-commit-hook

  • #20578: DEP: signal: 在 firwin* 中移除 nyq / Hz kwargs 并切换到…

  • #20582: MAINT: optimize.isotonic_regression: 移除不必要的复制

  • #20583: TST: stats.rv_continuous.fit: 调整 fit XSLOW/XFAIL/skip 集

  • #20585: CI/BLD: 构建时使用 scipy-openblas 轮子

  • #20588: DEP: special: 从 special.comb 移除 legacy kwarg 并切换到…

  • #20590: 回滚 “ENH: 在 `linprog` 中使用 `highspy`”

  • #20593: ENH: constants: 添加数组 API 支持

  • #20595: ENH: `stats.circ___`: 添加数组 API 支持

  • #20597: ENH: stats.skewtest: 添加数组 API 支持

  • #20600: TYP: 更新支持的 Mypy 版本从 1.0.0 到 1.10.0

  • #20604: ENH: stats.monte_carlo_test: 添加数组 API 支持

  • #20612: BLD: 修复非默认解释器的使用,改进 f2py 处理

  • #20615: ENH: stats: 为 burr12 实现 _isf

  • #20616: DOC: integrate: 移除对已弃用和旧版函数的引用

  • #20619: ENH: spatial: 序列化对 QHull 的并发调用

  • #20621: TYP: 为 `scipy/_lib/_array_api.py` 添加类型注释

  • #20625: TST: 为 xp_assert_close 添加 dtype 依赖的默认 rtol

  • #20627: MAINT: special: 移除 kolmogorov.h 中未使用的 function_calls 变量

  • #20628: TST: integrate.tanhsinh: 使测试用例 XSLOW

  • #20630: ENH: optimize._jacobian: 使用 _differentiate 计算准确的…

  • #20631: ENH: stats.sem: 添加数组 API 支持

  • #20634: ENH: stats: 为 kstat/kstatvar 添加数组 API 支持

  • #20637: MAINT: 修复 `datasets._fetchers` 模块中损坏的链接

  • #20640: TST: 调整新的数组 API 测试,慢速测试

  • #20642: TST: stats.ttest_1samp: 修复 xslow 测试

  • #20643: MAINT: 更新 boost 以修复 `skewnorm.ppf`

  • #20645: ENH: optimize.approx_fprime: 避免二次内存使用

  • #20646: ENH: special: 添加 `log_wright_bessel`

  • #20647: ENH: stats.variation: 添加数组 API 支持

  • #20649: MAINT: sparse: 重新格式化稀疏数组的 str 和 repr,更正…

  • #20651: ENH: stats.kstat/kstatvar: 添加对 `axis` 的原生支持

  • #20656: ENH: spatial.transform.Rotation 方法的微优化

  • #20657: MAINT: 移除 special 中未使用的变量

  • #20658: ENH: stats.kurtosis: 添加数组 API 支持

  • #20663: MAINT: stats.kruskal: 修复 SCIPY_ARRAY_API=1 下的无参数行为

  • #20664: 修复 cont2discrete 中的拼写错误

  • #20665: trust-constr 在…时使错误消息来源更清晰

  • #20667: ENH: stats.describe: 添加数组 API 支持

  • #20673: ENH: stats.entropy, special.{entr, rel_entr}: 添加数组 API 支持

  • #20675: DOC: 修复 signal.ellipap 中的拼写错误

  • #20676: MAINT: 澄清 dual_annealing-minimizer_kwargs docstring。关闭…

  • #20677: TST: test__differential_evolution 速度调整

  • #20679: MAINT: special.wright_bessel: 添加关于参考文献的注释

  • #20684: MAINT: 修复 signal.iirdesign 中缺失的空格,间距一致性…

  • #20685: MAINT: 添加对 elementwise 中无效初始括号的优雅处理…

  • #20689: ENH: optimize._chandrupatla: 添加数组 API 支持

  • #20694: MAINT: stats: 使缩减函数发出一致的警告…

  • #20696: MAINT: stats.gstd: 返回结果而不是引发

  • #20698: DEV/BLD: 添加 –with-accelerate 标志到 `dev.py build`

  • #20705: MAINT: 添加缺失的空格

  • #20711: MAINT: numpy 清理版本升级:修复问题 #20458

  • #20712: ENH/BLD: 添加 `tests` 的安装标签

  • #20715: ENH: stats.kurtosistest: 添加数组 API 支持

  • #20716: DEP: integrate.quad_vec: 弃用 `quadrature=”trapz”`

  • #20722: ENH: sparse: 加速 DIA 格式的 `_add_sparse`

  • #20726: DOC: stats.{circmean, circvar, circstd}: 提高准确性/清晰度

  • #20730: BUG: special: 修复 `cephes/polevl.h` 中 `ratevl` 的算法错误

  • #20732: BUG: interpolate: 不要在不良边界条件下发生段错误

  • #20734: BUG: stats.ttest_1samp: 修复 `keepdims` 的使用

  • #20736: ENH: stats.normaltest/jarque_bera: 添加数组 API 支持

  • #20737: TST, MAINT: 运行优化数组 API 测试并修复 `chandrupatla`

  • #20738: DOC: sparse.csgraph.dijkstra: 添加 `directed=False` 的警告…

  • #20741: MAINT: optimize: COBYQA 的另一个 fail_slow 异常

  • #20744: MAINT: 在 CI 中使用 PyTorch 2.3,修复 CuPy 失败,更多类型注释…

  • #20745: BUG: 修复 cephes hyperg.h 中不正确的括号

  • #20746: DOC: stats: 更新 kstat/kstatvar 给出的公式以反映…

  • #20748: TST: 提高容差以解决本地 `test_axis_nan_policy`…

  • #20750: ENH: differential_evolution 的一些微优化

  • #20751: ENH: stats.bartlett: 添加原生 `axis` 和数组 API 支持

  • #20753: ENH: stats.chisquare/power_divergence: 添加数组 API 支持

  • #20756: TST: stats: 重构正态性测试

  • #20764: TST: stats.fit: 解决 xslow 测试失败

  • #20765: MAINT: stats.wilcoxon: 使 `method=’exact’` 在有平局时对称

  • #20769: 维护: stats: 移动 `multiscale_graphcorr` 测试以节省时间

  • #20770: 维护: optimize: 移除 `ScalarFunction` 中的循环引用

  • #20775: 维护: 前向移植 1.13.1 发布说明

  • #20777: 增强: stats: 为正态性检验提供端到端的 array-API 支持

  • #20778: 文档: signal: `detrend` 函数的文档改进

  • #20780: 废弃: special.comb: 对于非整数输入,废弃 `exact=True`

  • #20781: 测试: stats: 移除调用 `_get_pvalue` 时 `array_namespace` 的开销

  • #20782: 增强: stats: 为基于卡方分布的 NHSTs 提供端到端的 array-API 支持…

  • #20784: 文档: SciPy 1.14.0 发布说明

  • #20787: 文档: interpolate: 在 `interp2d` 转换中提及默认类型…

  • #20788: 增强: optimize: 通过减少开销来提高 `cobyqa` 性能…

  • #20789: 废弃: stats.linregress: 废弃单参数用法

  • #20790: 错误修复: special: 移除冗余的 `Py_Initialize`

  • #20791: 测试: optimize: 修复 `_bracket_minimum` 的失败测试

  • #20792: 错误修复: sparse: 修复 `argmin/max` 在轴 0/1 之间的形状差异。并且…

  • #20795: 维护: 修复 Cython 中关于 `noexcept` 和 `except *` 的警告…

  • #20796: 构建系统: optimize: 消除来自 `HiGHS` 的构建警告

  • #20798: 维护: special: 修复 numpy 初始化,避免构建警告

  • #20799: 文档: ndimage: 改进灰度形态学的文档字符串

  • #20804: 维护: 从 pyproject.toml 中移除 pytest-fail-slow

  • #20805: 错误修复: special: 恢复 `cchg()` 函数中缺失的代码行。

  • #20807: 测试: stats.nbinom: 调整 cdf-ppf 往返测试

  • #20812: 文档: 扩展“构建可复现二进制文件”页面

  • #20815: 文档: integrate: `odeint` 用户函数不得修改 y。

  • #20819: 回滚: 回滚 gh-17924 中意外的 `cobyqa` 更新

  • #20820: 构建系统: 来自 `scipy/special/special/gamma.h` 的警告修复

  • #20828: 废弃: 废弃 `stats.trapezoid` 分布的 `trapz` 别名

  • #20831: 维护: 版本锁定/为 1.14.0rc1 做准备

  • #20838: 文档: sparse: 1.14.0 发布说明补充

  • #20839: 发布: 将 1.14.0rc2 设为未发布

  • #20841: 文档: 添加 `cobyqa` 网站参考

  • #20851: 文档: 添加 `cobyqa` 网站参考 (#20841)

  • #20858: 维护: `stats.bootstrap`: 发出关于广播的 `FutureWarning` 警告

  • #20870: 构建系统: 通过移除原始库来测试 delocate 是否工作 [wheel 构建]

  • #20881: 文档: 邮件列表改为论坛

  • #20890: 文档: 以等宽字体编写 API 参考标题

  • #20909: 废弃: special.perm: 废弃非整数 `N` 和 `k` …

  • #20914: 测试: linalg: 增加 `TestEig::test_singular` 中的容差

  • #20919: 构建系统: optimize: 对静态 `HiGHS` 库使用隐藏可见性

  • #20920: 维护: special: 通过使用 `new` 和 `delete` 修复 msvc 构建…

  • #20923: 文档: 更新 doctests 以满足 scipy-doctests==1.2.0

  • #20927: 维护: 适应 scipy-doctests 的一项变更

  • #20933: 维护: 1.14.0rc2 反向移植

  • #20936: 文档: `array_api.rst`: 更新 1.14 函数以支持 array API…

  • #20937: 错误修复/构建系统: special: 确保 `sf_error_state` 中的符号共享…

  • #20945: 测试: 解决 SciPy 1.14.0rc1 在 linux-{aarch64,ppc64le} 上的容差违规问题

  • #20952: 测试: 放宽 `test_x0_working` 中的容差以适应备用…

  • #20953: 测试: 略微放宽 `test_krandinit` 中的容差以适应…

  • #20961: 测试: 增强 `test_nnls_inner_loop_case1` 的健壮性

  • #20970: 发布: 将 1.14.0 rc3 设为未发布

  • #20973: 测试: sparse.linalg: 由于对数值…敏感,跳过测试

  • #20979: 风格: `_lib._util`: 解决主分支中新的 mypy 投诉