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.interpolate.Akima1DInterpolator
现在通过extrapolate
参数支持外推。
scipy.optimize
改进#
scipy.optimize.HessianUpdateStrategy
现在也接受init_scale
的方阵。scipy.optimize.minimize
中添加了一个新方法cobyqa
,它是 COBYQA(Constrained Optimization BY Quadratic Approximations,基于二次逼近的约束优化)的接口,一个无导数优化求解器,旨在取代 COBYLA,由香港理工大学应用数学系开发。scipy.optimize.approx_fprime
现在具有线性空间复杂度。
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_array
或csc_array
会产生 1D (CSC) 数组。稀疏矩阵和数组对象的
repr
和str
输出得到改进。已添加一个特殊情况来处理
dia_array
与标量相乘,这避免了潜在昂贵的 CSR 格式转换。已添加
scipy.sparse.csgraph.yen
,允许在有向或无向图上使用 Yen 的 K-最短路径算法。DIA 格式稀疏数组和矩阵之间的加法现在更快。
scipy.sparse.linalg.spsolve_triangular
在许多情况下现在速度快了一个数量级以上。
scipy.spatial
改进#
Rotation
支持一种替代的“标量优先”四元数分量排序约定。它通过from_quat
和as_quat
方法的关键字参数scalar_first
提供。对
Rotation
对象的反演有一些小的性能改进。
scipy.special
改进#
添加了
scipy.special.log_wright_bessel
,用于计算 Wright 贝塞尔函数的对数。scipy.special.hyp2f1
计算的相对误差显著提高。通过防止过早溢出,改进了
boxcox
、inv_boxcox
、boxcox1p
和inv_boxcox1p
的行为。
scipy.stats
改进#
新函数
scipy.stats.power
可用于模拟假设检验相对于指定备择假设的功效。Irwin-Hall (又称 Uniform Sum) 分布已添加为
scipy.stats.irwinhall
。scipy.stats.mannwhitneyu
的精确 p 值计算速度更快,内存使用更少。scipy.stats.pearsonr
现在接受 n 维数组,并沿指定的axis
计算统计量。scipy.stats.kstat
、scipy.stats.kstatvar
和scipy.stats.bartlett
在沿大型 n 维数组的轴执行计算时速度更快。
Array API 标准支持#
SciPy 最新版本中现有子包已添加对 NumPy 以外的数组库的*实验性*支持。请考虑通过设置环境变量 SCIPY_ARRAY_API=1
并提供 PyTorch、JAX 或 CuPy 数组作为数组参数来测试这些功能。
截至 1.14.0,支持:
scipy.special
:(选择函数)scipy.stats
:(选择函数)
已弃用特性#
scipy.stats.gstd
、scipy.stats.chisquare
和scipy.stats.power_divergence
已弃用对遮罩数组输入的支持。scipy.stats.linregress
已弃用在单个参数中同时指定两个样本的支持;x
和y
应作为单独的参数提供。scipy.sparse.dok_array
和scipy.sparse.dok_matrix
的conjtransp
方法已被弃用,并将在 SciPy 1.16.0 中移除。scipy.integrate.quad_vec
中的选项quadrature="trapz"
已被弃用,取而代之的是quadrature="trapezoid"
,并将在 SciPy 1.16.0 中移除。scipy.special.{comb,perm}
已弃用在非整数N
和/或k
情况下使用exact=True
的支持。
向后不兼容的更改#
许多
scipy.stats
函数现在在输入样本过小(例如大小为零)时会产生标准化警告消息。此前,这些函数可能会引发错误、发出一个或多个信息量较少的警告,或者不发出警告。在大多数情况下,返回结果不变;在几乎所有情况下,正确的结果都是NaN
。
已过期弃用#
正在努力落实长期存在的弃用。以下先前已弃用的功能受到影响:
稀疏数组的几个先前已弃用的方法已被移除:
asfptype
、getrow
、getcol
、get_shape
、getmaxprint
、set_shape
、getnnz
和getformat
。此外,.A
和.H
属性也被移除。scipy.integrate.{simps,trapz,cumtrapz}
已被移除,取而代之的是simpson
、trapezoid
和cumulative_trapezoid
。scipy.sparse.linalg.{bcg,bicstab,cg,cgs,gcrotmk, mres,lgmres,minres,qmr,tfqmr}
的tol
参数已被移除,取而代之的是rtol
。此外,这些函数的atol
默认值已更改为0.0
。scipy.sparse.linalg.gmres
的restrt
参数已被移除,取而代之的是restart
。scipy.stats.kendalltau
的initial_lexsort
参数已被移除。scipy.linalg.pinv
的cond
和rcond
参数已被移除。scipy.integrate.simpson
的even
参数已被移除。scipy.linalg.{eigh,eigvalsh}
中的turbo
和eigvals
参数已被移除。scipy.special.comb
的legacy
参数已被移除。signal.{firls, firwin, firwin2, remez}
的hz
/nyq
参数已被移除。不再属于公共接口但可通过已弃用子模块访问的对象已被移除。
float128
、float96
和对象数组现在在scipy.signal.medfilt
和scipy.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 支持。
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 投诉