SciPy 1.8.0 发布说明#
SciPy 1.8.0 是 6 个月辛勤工作的结晶。它包含许多新功能、大量的错误修复、改进的测试覆盖率和更好的文档。此版本中有一系列已废弃和 API 更改,这些都已在下文记录。我们鼓励所有用户升级到此版本,因为它包含大量错误修复和优化。在升级之前,我们建议用户检查自己的代码是否使用了已废弃的 SciPy 功能(为此,请使用 python -Wd
运行代码并检查 DeprecationWarning
警告)。我们的开发重点现在将转移到 1.8.x 分支的错误修复版本以及 master 分支的新功能添加。
此版本需要 Python 3.8+ 和 NumPy 1.17.3 或更高版本。
要在 PyPy 上运行,需要 PyPy3 6.0+。
本次发布的亮点#
已添加稀疏数组 API,用于早期测试和反馈;此工作正在进行中,用户应期待在未来几个版本中进行细微的 API 改进。
稀疏 SVD 库 PROPACK 现已随 SciPy 一同提供,并通过 scipy.sparse.svds 暴露接口,其中
solver='PROPACK'
。由于 Windows 上可能存在问题,我们计划在下个版本中解决,因此目前默认禁用,但可以在运行时通过设置环境变量USE_PROPACK=1
来选择性启用,以便进行友好测试。一个新的
scipy.stats.sampling
子模块,它利用UNU.RAN
C 库从任意单变量非均匀连续和离散分布中进行抽样所有原本是私有但名称中缺少下划线的命名空间都已被废弃。
新特性#
scipy.fft
改进#
在 scipy.fft
中的实数变换添加了一个 orthogonalize=None
参数,该参数控制是否使用 DCT/DST 的修改定义而不改变整体缩放。
scipy.fft
后端注册现在更流畅,只需一次注册调用即可操作,不再需要上下文管理器。
scipy.integrate
改进#
scipy.integrate.quad_vec
引入了一个新的可选的仅关键字参数 args
。 args
接受一个额外参数元组(如果有)(默认值为 args=()
),该元组随后在内部用于传递给我们希望积分的可调用函数(需要这些额外参数)。
scipy.interpolate
改进#
scipy.interpolate.BSpline
有一个新方法 design_matrix
,它以稀疏 CSR 格式构建 B 样条的设计矩阵。
A new method from_cubic
in BSpline
class allows to convert a CubicSpline
object to BSpline
object.
scipy.linalg
改进#
scipy.linalg
新增了三个公共数组结构研究函数。scipy.linalg.bandwidth
返回有关数组带状结构的信息,可用于测试三角形结构发现,而 scipy.linalg.issymmetric
和 scipy.linalg.ishermitian
则测试数组的精确和近似对称/埃尔米特结构。
scipy.optimize
改进#
scipy.optimize.check_grad
引入了两个新的可选的仅关键字参数:direction
和 seed
。direction
可以取值 'all'
(默认),在这种情况下,所有独热方向向量将用于验证输入分析梯度函数;或者取值 'random'
,在这种情况下,将使用一个随机方向向量用于相同目的。seed
(默认值为 None
)可用于重现 check_grad
函数的返回值。它仅在 direction='random'
时使用。
The scipy.optimize.minimize
TNC
method has been rewritten to use Cython bindings. This also fixes an issue with the callback altering the state of the optimization.
为 basinhopping
中的自适应步长调整添加了可选参数 target_accept_rate
和 stepwise_factor
。
The epsilon
argument to approx_fprime
is now optional so that it may have a default value consistent with most other functions in scipy.optimize
.
scipy.signal
改进#
为 zpk2sos
添加 analog
参数,默认值为 False
,并添加新的配对选项 'minimal'
以构建模拟和最小离散 SOS 数组。tf2sos
使用 zpk2sos;此处也添加 analog
参数,并将其传递给 zpk2sos
。
savgol_coeffs
和 savgol_filter
现在适用于偶数窗口长度。
添加了可作为 scipy.signal.CZT
和 scipy.signal.ZoomFFT
使用的 Chirp Z 变换和 Zoom FFT。
scipy.sparse
改进#
已添加数组 API,用于早期测试和反馈;此工作正在进行中,用户应期待在未来几个版本中进行细微的 API 改进。更多信息请参阅 scipy.sparse
的文档字符串。
maximum_flow
引入了可选的仅关键字参数 method
,该参数接受 'edmonds-karp'
(Edmonds Karp 算法)或 'dinic'
(Dinic 算法)。此外,'dinic'
被用作 method
的默认值,这意味着除非另有指定,否则 Dinic 算法将用于计算最大流。请参阅 此评论 中对所支持算法的比较。
现在 scipy.sparse.linalg.lsmr
中的参数 atol
和 btol
默认值为 1e-6,与 scipy.sparse.linalg.lsqr
中的默认值匹配。
在 scipy.sparse.linalg.tfqmr
中添加了用于一般非奇异非埃尔米特线性系统的无转置准最小残差算法 (TFQMR)。
稀疏 SVD 库 PROPACK 现已随 SciPy 一同提供,并通过 scipy.sparse.svds 暴露接口,其中 solver='PROPACK'
。对于某些问题,这可能比默认的 ARPACK 更快和/或更准确。PROPACK 功能目前是选择加入的——由于 Windows 上可能存在问题,我们计划在下个版本中解决,因此您必须在运行时指定 USE_PROPACK=1
才能使用它。
sparse.linalg
迭代求解器现在具有非零初始猜测选项,可以指定为 x0 = 'Mb'
。
已为稀疏矩阵添加了 trace
方法。
scipy.spatial
改进#
scipy.spatial.transform.Rotation
现在支持项赋值,并新增了 concatenate
方法。
添加 scipy.spatial.distance.kulczynski1
以取代 scipy.spatial.distance.kulsinski
,后者将在下一版本中废弃。
scipy.spatial.distance.minkowski
现在也支持 0<p<1
。
scipy.special
改进#
新函数 scipy.special.log_expit
计算逻辑 S 形函数的对数。该函数旨在为大的正负输入提供准确的结果,从而避免了朴素实现 log(expit(x))
中可能出现的问题。
椭圆积分新增了五组函数:scipy.special.ellipr{c,d,f,g,j}
。这些是 Carlson 对称椭圆积分,相比经典的 Legendre 积分具有计算优势。之前的版本包含 Cephes 库的一些椭圆积分(scipy.special.ellip{k,km1,kinc,e,einc}
),但缺少第三类积分(Legendre 的 Pi),这可以使用新的 Carlson 函数进行计算。新的 Carlson 椭圆积分函数可以在复平面上计算,而 Cephes 库的函数仅对实数输入定义。
scipy.special.hyp2f1
中的几个缺陷已得到纠正。对于接近 exp(+-i*pi/3)
的 z
值,现在返回近似正确的值,修复了 #8054。对于此类 z
的计算现在通过 López 和 Temme (2013) 推导出的在这些区域收敛的级数进行。此外,对于 a
、b
和/或 c
中一个或多个为非正整数的退化情况,现在以与 mpmath 的 hyp2f1 实现 一致的方式处理,这修复了 #7340。这些修复是逐步用 Cython 重写 Fortran 77 实现的 hyp2f1 的一部分。这项重写工作现在已完成大约 50%。
scipy.stats
改进#
scipy.stats.qmc.LatinHypercube
引入了两个新的可选的仅关键字参数:optimization
和 strength
。optimization
可以是 None
或 random-cd
。在后一种情况下,执行随机置换以改进中心偏差。strength
可以是 1 或 2。1 对应于经典的 LHS,而 2 具有更好的子投影属性。这种构造被称为强度为 2 的基于正交数组的 LHS。在这两种情况下,输出仍然是 LHS。
由于底层的 Van der Corput 序列已移植到 Cython,因此 scipy.stats.qmc.Halton
速度更快。
alternative
参数已添加到 kendalltau
和 somersd
函数中,以允许单边假设检验。类似地,skewtest
、kurtosistest
、ttest_1samp
、ttest_ind
和 ttest_rel
的掩码版本现在也具有 alternative
参数。
添加 scipy.stats.gzscore
以计算几何 z 分数。
新的 scipy.stats.sampling
子模块已添加随机变量生成器,用于从任意单变量非均匀连续和离散分布中进行抽样。为了提高性能,使用了 C 库 UNU.RAN 的实现。添加的生成器有:
TransformedDensityRejection
DiscreteAliasUrn
NumericalInversePolynomial
DiscreteGuideTable
SimpleRatioUniforms
现在,binned_statistic
系列函数在 std
、min
、max
和 median
统计计算方面的性能有所提高。
somersd
和 _tau_b
现在有了基于 Pythran 的更快实现。
对多个 stats
函数中 nan
值的处理进行了一些通用效率改进。
添加了 Tukey-Kramer 检验,作为 scipy.stats.tukey_hsd
。
改进了 scipy.stats.argus
的 rvs
方法的性能。
为 scipy.stats.variation
添加了参数 keepdims
,并防止在某些情况下该函数返回不需要的掩码数组。
permutation_test
对所提供数据上的给定统计量执行精确或随机置换检验。
已废弃特性#
公共和私有 API 之间的明确划分#
SciPy 始终在其 API 参考文档 中记录了其公共 API 的组成,但是代码库中从未明确划分公共和私有命名空间。在此版本中,所有原本是私有但名称中缺少下划线的命名空间都已被废弃。这些包括(仅举例,还有更多):
scipy.signal.spline
scipy.ndimage.filters
scipy.ndimage.fourier
scipy.ndimage.measurements
scipy.ndimage.morphology
scipy.ndimage.interpolation
scipy.sparse.linalg.solve
scipy.sparse.linalg.eigen
scipy.sparse.linalg.isolve
这些命名空间中所有旨在公共的函数和其他对象都可以从它们各自的公共命名空间访问(例如 scipy.signal
)。设计原则是任何公共对象只能从单个命名空间访问;存在少数例外,主要出于历史原因(例如,stats
和 stats.distributions
有重叠)。对于旨在提供 SciPy 兼容 API 的其他库,现在明确了应遵循的命名空间结构。有关更多详细信息,请参阅 gh-14360。
其他废弃#
NumericalInverseHermite
已从 scipy.stats
中废弃,并已移至 scipy.stats.sampling
子模块。它现在使用 UNU.RAN 库的 C 实现,因此像 ppf
这样的方法的结果可能会略有不同。参数 tol
已废弃并重命名为 u_resolution
。参数 max_intervals
也已废弃,并将在 SciPy 的未来版本中移除。
向后不兼容的变更#
SciPy 已将 Linux 上的最低编译器版本提高到 GCC 6.3,Windows 上的最低编译器版本提高到 VS2019。特别是,这意味着 SciPy 现在可以使用 C99 和 C++14 功能。有关更多详细信息,请参阅 此处。
现在,对于
scipy.stats.binned_statistic
使用内置'std'
指标的空 bin,结果现在是nan
,与np.std
保持一致。函数 scipy.spatial.distance.wminkowski 已被移除。为了获得与之前相同的结果,请使用带有(可选)
w=
关键字参数的minkowski
距离函数,以指定给定权重。
其他变更#
一些 Fortran 77 代码已现代化,以与 NAG 的 nagfor Fortran 编译器兼容(例如,请参阅 PR 13229)。
现在我们的测试套件可以使用 `threadpoolctl`,以显著提高并行测试套件运行的效率。
1.8.0 版本已关闭的问题#
#592: 统计审查:variation (Trac #65)
#857: PROPACK 的一个包装器 (Trac #330)
#2009: “Kulsinski” 相异度似乎错误 (Trac #1484)
#2063: COBYLA 和 TNC 的回调函数 (Trac #1538)
#2358: ndimage.center_of_mass 没有返回所有标记对象的所有信息…
#5668: 模拟滤波器需要 zpk2sos
#7340: SciPy 超几何函数 hyp2f1 产生无穷大
#8774: 在
optimize.basinhopping
中,目标接受率应…#10497: scipy.sparse.csc_matrix.toarray 的文档字符串有误
#10888: 检查随机方向上的有限差分梯度近似
#10974: lobpcg 中不明确的错误消息
#11452:
scipy.signal.butter
中Wn
的归一化要求不明确#11700: solve_ivp 报错而不是在求解后直接退出…
#12006: newton:对于多变量问题,它不应该接受 Jacobian 矩阵吗?…
#12100: solve_ivp:自定义 t_eval 列表和终止事件
#12106:
stats.tmean
的axis
选项似乎不起作用…#12192:
scipy.stats.rv_continuous.moment
不接受数组输入#12502: 当相等性…时,在 Jacobian 数值微分中出现除以零错误
#12981: 1.5.2 中 SLSQP 约束最小化错误
#12999: scipy.stats.ks_2samp 在双边自动和精确模式下存在 bug…
#13402: ENH: scipy.sparse.csgraph 中更快的最大流算法
#13580: truncnorm 给出不正确的均值和方差
#13642: 当输入为数组时,stats.truncnorm 方差工作不正确。
#13659:
scipy.stats.qmc
中拉丁超立方体的正交数组#13737: brentq 可能溢出/下溢
#13745: lsqr, lsmr 的默认 atol, btol 不同
#13898: 偶数数据点的 Savitzky-Golay 滤波器
#13902:
svds
的不同求解器返回的结果大相径庭#13922: 需要针对不正确和/或误导性模拟…的异常/错误
#14122: spatial.transform.Rotation 对象的项赋值
#14140: PchipInterpolator 可能发出不必要的无效值警告
#14152: 当巴特沃斯带通滤波器…时,zpk2sos 无法正常工作
#14165: scipy.optimize.minimize 方法='Nelder-Mead':'maxfev' 未…
#14168: 多维离散余弦/正弦…中缺少“逆”字
#14189:
scipy.stat.multivariate_t.rvs
中不正确的形状处理…#14190: Dirichlet 分布文档中的链接混乱
#14193: 混淆的 Van der Corput 序列实现与…不同
#14217:
scipy.stats.gaussian_kde.factor
文档中的错误#14235: 这应该是只有 $y$,而不是 $m_y$ 吗?
#14236: BUG: 当 loc != 0 时,离散 isf 在边界处错误
#14277: scipy.stats.power_divergence 文档字符串中的引用损坏
#14324: BUG: scipy.stats.theilslopes 截距计算可能产生…
#14332:
binned_statistic_dd
与statistic=sum
的奇怪输出#14340: 使用 Rotation 列表或数组初始化 Rotation
#14346: scipy.stats.rv_continuous.fit 返回包装器而不是 fit…
#14360: 通过使用下划线明确哪些命名空间是公共的
#14385: csgraph.maximum_flow 对于大型但非常…的情况可能导致 Python 崩溃
#14409: 拉格朗日多项式和 numpy 多项式
#14412:
scipy.integrate.quad_vec
的额外函数参数#14416: scipy.stats.linregress 输出的 r 值是否总是…
#14420: BUG: RBFInterpolator 在使用…切片调用时失败
#14425: 并行运行测试并不比不使用 pytest-xdist 快…
#14445: BUG:
prini.f
中越界索引问题#14482: Azure CI 作业未正确设置构建阶段的退出状态
#14491: MAINT: 将 np.rollaxis 替换为 np.moveaxis
#14501: runtests.py 覆盖
$PYTHONPATH
#14514: linprog kwargs 未被识别
#14529: CI: Azure 流水线似乎未运行
#14535: hess 选项在 minimize 函数中不起作用
#14551: 无法创建形状为 N x N-2 的压缩稀疏列矩阵
#14568:
stats.norminvgauss
实现不正确?#14585: DOC: 工具链更新和最大 Python 版本
#14607: scipy.sparse.linalg.inv 尽管…不能接受 ndarray 作为参数
#14608: BUG: scipy.stats.multivariate_t 分布数学文档
#14623: BUG: 构造索引大于…的稀疏矩阵时出错
#14654: DOC: Linux 开发文档工作流程需要安装…包
#14680: BUG: scipy.stats.entropy 中误导性文档
#14683: DOC: OptimizeResult 注释放在属性部分之前,…
#14733: BUG: resample_poly 不保留 dtype
#14746: site.cfg: [ALL] 还是 [DEFAULT]?
#14770: BUG: lpmn 引用链接损坏
#14807: BUG: QUADPACK 中 7 点高斯规则的权重错误:dqk15w.f
#14830: CDF 反演方法必须是公共的吗?
#14859: BUG: 当边界相等时,约束函数被覆盖…
#14873: ENH: 获取 scipy.linalg.eigh 中使用的驱动程序
#14879: BUG: 如果使用回调函数,TNC 输出不同。
#14891: DOC:
directed_hausdorff
期望 2D 数组,尽管文档说明…#14910:
stats.contingency
未列为公共 API#14911: MAINT, DOC: CI 文档构建失败
#14942: DOC: Mac 文档中运行测试的命令说明模糊
#14968: 调试构建 CI 作业在
stats._unuran
线程测试中崩溃#14984: BUG: scipy.sparse.linalg.spsolve: 由…引起的运行时内存错误
#14987: ENH: BSpline.design_matrix 的节点区间查找效率低下
#15025: 可能是 j<=i+k?
#15033: BUG: scipy.fft.dct type I 与 norm = “ortho” 导致错误…
#15051: BUG: wheel 构建器仓库中 aarch 上的测试失败
#15064: MAINT:
interpolation
关键字在…中重命名为method
#15103: BUG: scipy.stats.chi.mean 由于使用…,对于大型 df 返回 nan
#15186: 修复 pytest 7.0.0 中
pytest.warns(None)
的使用#15206: BUG: scipy.sparse DeprecationWarnings 中的建议存在小问题…
#15224: BUG: 稀疏数组/矩阵的 0 次幂总是返回恒等式…
#15228: BUG: 有界 L-BFGS-B 不适用于标量。
#15254: BUG:
DeprecationWarning: distutils Version classes are deprecated
#15267: Windows CI 作业在 Pythran 0.11 上存在构建问题
#15276: Boost 和 PROPACK git 子模块太容易提交更改…
#15316: BUG: 无法在 aarch64 中使用 pypy 3.7 安装 scipy 1.7.x
#15339: BUG:
highs-ds
返回 memoryviews 而不是 np.arrays,用于…#15375: BUG: scipy.stats.mode 的 axis 参数不接受负值…
#15517: BUG: 邮件列表链接似乎损坏
1.8.0 版本的拉取请求#
#4607: 添加 Chirp Z 变换、Zoom FFT
#10504: ENH: Carlson 对称椭圆积分。
#11263: MAINT:optimize: 符合用户指定的 rel_step
#11754: ENH: stats:
variation
的更新。#11954: ENH: 改进 scipy.stats 中的 ARGUS rv 生成
#12143: BUG: 在
scipy.stats.tmean
中正确使用axis
#12146: DOC: 添加文档解释 newton 方法在数组上的行为
#12197: BUG: 修复 moments 方法以支持数组和列表
#12889: MAINT: 处理
minimize
中(bounds.lb == bounds.ub).any()
的情况#13002: ENH: stats: Tukey 的诚实显著性差异检验
#13096: BUG: optimize: 解决 lb==ub 导致 minimize 问题的替代修复
#13143: MAINT: 处理
minimize
中(bounds.lb == bounds.ub).any()
的情况…#13229: ENH: 现代化部分 Fortran 代码,nagfor 编译器需要
#13312: ENH: stats: 为函数添加
axis
和nan_policy
参数…#13347: CI: 将 gcc 从 4.8 升级到 5.x
#13392: MAINT: 简化 dual_annealing 中最小化器的 kwargs
#13419: BUG: 修复群延迟奇异点检查
#13471: ENH: 基于 LHS 的优化设计 (scipy.stats.qmc)
#13581: MAINT: stats: 修复 truncnorm 统计数据与数组形状的问题
#13839: MAINT: 设置 LSMR 和 LSQR 之间相同的容差
#13864: 数组标量转换废弃
#13883: MAINT: 将 LSAP 最大化处理移至求解器代码
#13899: ENH: stats: 添加一般置换假设检验
#13921: BUG: optimize: 修复
minimize
的最大函数调用验证…#13958: ENH: stats: 为掩码版本的 T 检验添加
alternative
#13960: ENH: stats: 为掩码正态性检验添加
alternative
#14007: BUG: 修复 Brent 方法中的根区间搜索逻辑(问题 #13737)
#14024: ENH: 为
scipy.spatial.cKDTree
添加注释#14049: MAINT: 将 special.orthogonal.orthopoly1d 类型提示更改为 ArrayLike
#14132: DOC: 导航栏中文档版本徽章
#14144: REL: 设置版本为 1.8.0.dev0
#14151: BLD: 更新 pyproject.toml - 添加 macOS M1,移除 py36
#14153: BUG: stats: 实现 boost 的超几何分布…
#14160: ENH: sparse.linalg: 为非埃尔米特稀疏…添加 TFQMR 算法
#14163: BENCH: 为 energy_distance 和 wasserstein_distance 添加基准测试
#14173: BUG: 修复了
geometric_slerp
会返回…的问题#14174: ENH: 为
scipy.spatial.geometric_slerp
添加注释#14183: DOC: 在 scipy.stats 中添加 pearsonr 的示例/更新 mstats 文档
#14186: TST, MAINT: hausdorff 测试清理
#14187: DOC: interpolate: rbf 也有 kwargs。
#14191: MAINT:TST:linalg 现代化测试断言
#14192: BUG: stats: 修复 multivariate_t.rvs 中的形状处理
#14197: CI: azure: 修复“跳过 azp”的处理。
#14200: DOC: 移除 scipy.stats.dirichlet 中指向 alpha 的链接
#14201: TST: lsqr 和 lsmr 测试中的清理
#14204: 改进索引维度的错误消息
#14208: MAINT: 在 PchipInterpolator 的 np.errstate 块中添加 invalid='ignore'
#14209: ENH: stats: kendalltau: 添加 alternative 参数
#14210: BUG: 修复在使用非 1D x0 和自适应时 Nelder-Mead 逻辑的问题
#14211: 修复了 gaussian_kde 的文档(kde.factor 描述)
#14213: ENH: stats: somersd: 添加 alternative 参数
#14214: ENH: 改进
scipy.spatial.qhull
注释#14215: ENH: stats: 将 UNU.RAN 库集成到
scipy.stats
中 [GSoC…#14218: DOC: 澄清
ndimage.center_of_mass
文档字符串#14219: ENH: sparse.linalg: 使用“math”中更快的“sqrt”并…
#14222: MAINT: stats: 移除未使用的 'type: ignore' 注释
#14224: MAINT: 修改为在基准测试中使用新的随机 API
#14225: MAINT: 修复
dir(scipy)
中缺失的 LowLevelCallable#14226: BLD: 修复缺少依赖项的警告以及开发版本号
#14227: MAINT: 修复 lbfgbf.f 中可能未初始化警告
#14228: BENCH: 为推断统计测试添加更多基准测试
#14237: 移除未使用的变量
#14240: ENH: sparse.linalg: 规范化类型描述
#14242: BUG: stats: 修复离散
.isf
在边界处工作的问题,当…#14250: cdfbin.f 中参数检查错误
#14254: BUG: 修复了
SphericalVoronoi
可能引发…的问题#14255: BUG: 大 N BarycentricInterpolator 的数值稳定性
#14257: MAINT: 修复了 scipy.optimize 中已废弃的 API 调用
#14258: DOC: 修复 CI 中失败的 stats.pearsonr 示例
#14259: CI: 将 mypy 固定到 0.902 并修复一个 CI 失败
#14260: BLD: optimize: 修复 moduleTNC 和 minpack.h 中的一些警告
#14261: BLD: 修复
optimize/_trlib
的包含顺序和构建警告#14263: DOC: 转发 1.7.0 发布说明
#14268: MAINT: 将 PyArrayObject* 中的直接字段访问替换为包装器…
#14274: MAINT: 更多针对 optimize 的标量数组转换修复
#14275: MAINT: 更新 vendored uarray,自动调度所需
#14278: MAINT: 隐式标量数组转换的两个小修复
#14281: ENH: 注释
scipy.spatial.qhull
的数组 dtypes#14285: DEV: 从 environment.yml 中移除 scikit-umfpack
#14287: TST: 为 hyp2f1 添加复数值测试,以期…
#14291: TST: 拆分组合的 LSAP 输入验证测试
#14293: MAINT: 移除最后一个已废弃的
PyEval_*
用法#14294: ENH: 在
scipy.spatial.ckdtree
和distance
中注释数组 dtypes#14295: MAINT: 将 LSAP 输入验证移至 lsap_module
#14297: DOC: 将代码块设为项目列表
#14301: MAINT: 修复
optimize/_trlib/
中的最后一个构建警告#14302: BLD: 修复
stats/biasedurn
的构建警告#14305: MAINT: 消除 odepackmodule.c 中的警告
#14308: ENH: 使用 Pythran 加速 somersd 和 _tau_b
#14309: BLD: 修复 scipy.special 的构建警告
#14310: ENH: 使 optimize.approx_fprime 中的 epsilon 参数可选。
#14311: MAINT: 更正了 scipy.spatial 中 NumPy API 的使用
#14312: ENH: 使用随机方向导数检查梯度
#14326: MAINT: 移除了 spatial/qhull 中 trace1 的重新定义
#14328: MAINT: _lib: 为 MessageStream 添加 __dealloc__
#14331: ENH: 补充稀疏矩阵(如
csr_matrix/csc_matrix/coo_matrix
)的trace
方法#14338: BUG: 修复
stats.binned_statistic_dd
中接近…值的错误#14339: TST: 修复
sparse.linalg.spsolve
奇异输入测试#14341: MAINT: 在 _nnls.py 中添加缺失的括号
#14342: ENH: 使
savgol_coeffs
、savgol_filter
适用于偶数…#14344: ENH: scipy.interpolate B 样条(design_matrix)
#14350: MAINT: 使 rv_continuous 的 fit 方法可 pickle
#14358: ENH: 用于 maximum_flow 的 Dinic 算法
#14359: ENH: 使用 try_last=True 设置 fft 后端
#14362: 使用列表推导式
#14367: BUG: 检查
memmove
中的 NULL 指针#14377: 修复了二值形态学在 iterations=1 且 output=input 时的行为
#14378: MAINT: 移除 `interpolate` 中已弃用的 NumPy C API
#14380: ENH: 修复了 theilslopes 中的截距计算
#14381: BENCH: 为 somersd 添加基准测试
#14387: MAINT: 移除了 `sparse` 中已弃用的 NumPy C API
#14392: BUG/ENH: 重构最大流预处理
#14393: CI: Lint 检查失败却报告成功
#14403: 修复文档字符串中的“差一”错误。
#14404: DOC: 修复 interpolate.pade 的 n 参数默认值的文档字符串
#14406: MAINT: 在 `spatial` 中使用 numpy_nodepr_api
#14411: MAINT: 小幅清理 `svd` 中 `compute_uv` 关键字的用法
#14413: DOC:interpolate: 修复“lagrange”的文档字符串示例
#14419: DEP: 弃用私有但非下划线开头的 `signal.spline`…
#14422: MAINT: csgraph: 将 Dinic 算法改为迭代实现
#14423: CI: 从 Azure 测试中移除跳过和预期失败测试的打印输出…
#14426: ENH: 为 quad_vec 中的可调用对象添加 args 参数
#14427: MAINT: 为 i686 支持添加额外的 Pythran 注解
#14432: BUG/ENH: 2样本 KS 检验精确 p 值的更稳定递归
#14433: ENH: 添加 PROPACK 封装以改进稀疏 SVD
#14440: MAINT: stats: 消除 mypy 警告
#14441: ENH: TST: 添加 threadpoolctl 钩子以限制 OpenBLAS 并行性
#14442: MAINT: 修复 `sparse/linalg/dsolve` 中未初始化警告
#14447: MAINT: 重命名 scipy.ndimage 模块
#14449: ENH: 用 Cython 实现 Van der Corput
#14454: MAINT: 开始将 hyp2f1 对复数的处理翻译为 Cython 代码
#14456: CI: 使用 flake8 而非 pyflakes + pycodestyle 进行 Lint 检查
#14458: DOC: 澄清 stats.linregress 中 rvalue 的含义
#14459: MAINT: 修复 `interpolate` 和 `cluster` 中未初始化警告
#14463: 修复文档概述中的拼写错误:“pandas”改为“SciPy”
#14474: DEP: 弃用私有但非下划线开头的 ndimage.<module> 命名空间
#14477: MAINT: 对 bspline (signal) 使用 Tempita 文件
#14479: 在 `idstn` 和 `idctn` 文档字符串中添加“Inverse”一词
#14487: TST: 修改受约束最小化中的不稳定测试
#14489: MAINT: 清理部分 line_search 代码
#14492: CI: 确保在构建 SciPy wheel 时 Azure 作业步骤失败…
#14496: MAINT: 切换为使用 spmatrix.toarray 而非 .todense
#14499: DOC: 修复 toarray/todense 文档字符串
#14507: CI: 添加 lint_diff 文档和仅在指定文件/目录上运行的选项
#14513: DOC: 在 jacobi 文档字符串中添加了引用和示例
#14520: BUG: diffev 的 maxfun 可能会在填充过程中部分达到
#14524: ENH: Rotation.concatenate
#14532: ENH: sparse.linalg: 当右侧为零时,解为零
#14538: CI: 恢复“CI: 确保在构建…”
#14539: DOC: 在 scipy.special 中添加了 chebyt 和 chebyu 文档字符串示例
#14546: ENH: 正交拉丁超立方采样到 QMC
#14547: ENH: Rotation 类的 __setitem__ 方法
#14549: pypy + win + mmap 的小测试修复
#14554: ENH: scipy.interpolate.BSpline from_power_basis
#14555: BUG: sparse: 修复 DIA.tocsc 错误
#14556: 修复强连通分量细节的链接…
#14559: WIP: TST: 为 Pythran somersd 添加测试
#14561: DOC: 在 (gen)laguerre 文档字符串中添加了引用和示例…
#14564: ENH: 添加多线程 Van Der Corput
#14571: 修复 _mannwhitneyu.py 示例中重复的单词
#14572: 设置 BSpline.design_matrix 的节点数组最小长度
#14578: DOC: 在球形贝塞尔函数文档字符串中添加了示例
#14581: MAINT: 重构 `linalg.tests.test_interpolative::TestInterpolativeDecomposition::test_id`
#14588: ENH: 将 ``kulczynski1`` 添加到 ``scipy.spatial.distance``
#14592: DOC: 澄清 scipy.stats 中 norminvgauss 的参数
#14595: 移除 ``scipy/linalg/src/id_dist/src/prini.f`` 中未使用的子程序
#14601: 修复 numpy 和 scipy interp 之间的不一致
#14602: MAINT: 修复 `sparse/linalg/dsolve` 中 `-Wunused-result` 警告
#14603: DEV: 在 Gitpod Dockerfile 中初始化所有子模块
#14609: MAINT: 修复 `optimize/_highs` 中 `-Wmaybe-uninitialized` 警告
#14610: MAINT: 忽略 ``scipy/signal/bspline_util.c``
#14613: MAINT: interpolate: 为 Cython 索引变量声明类型
#14619: ENH: stats.unuran: 添加基于多项式插值的数值…
#14620: CI: 修复使用预发布轮子 + Python 3.7 的 Azure 作业
#14625: ENH: 优化 scipy.stats.binned_statistic 中的最小值、最大值和中位数
#14626: MAINT: 修复 sparse.construct.bmat 中类型缩小的加法
#14627: MAINT: 提高容差以使 ``special.tests`` 在 Apple 上通过…
#14628: DOC: 澄清 scipy.optimize.linprog 中 options 参数的用法
#14629: ENH: 优化 scipy.stats.binned_statistic 中的标准差
#14630: DOC: 添加引用文件
#14631: 修复旧编译器上的 unuran 构建
#14633: BUG: scipy.stats._unran: 只将字符串发送到 include_dirs
#14634: DOC: 修复维基百科引导链接
#14635: DOC: stats: 修复 multivariate_t 文档中的 PDF 方程
#14637: MAINT: 复制离散分布字典
#14643: MAINT: 解决 gh6019,minimize_scalar 的 disp
#14644: DOC: stats: 在教程中添加 UNU.RAN 引用
#14649: DOC: 澄清 SciPy 与 Python 和 NumPy 的兼容性
#14655: MAINT: 移除对 Python 3.7 (因此 NumPy 1.16) 的支持
#14656: MAINT: 将
assert_
替换为 assert#14658: DOC: 在 Ubuntu 快速入门中使用 conda-forge
#14660: MAINT: 重构“for … in range(len(”语句
#14663: MAINT: 更新 pyproject.toml 中剩余的 Python 和 NumPy 版本
#14665: BLD: 修复应该捕获的令人困惑的“import pip”失败
#14666: MAINT: 移除不必要的种子并更新 `check_random_state`
#14669: ENH: 重构 GitHub 问题表单模板
#14673: BLD: 修复包含顺序,Python.h 在标准头文件之前
#14676: BUG: 修复了基准测试 optimize_qap.QuadraticAssignment.track_score 失败的问题
#14677: MAINT: 文件路径上的 GitHub 标签器
#14682: DOC: 修复 mannwhitneyu 文档字符串中的拼写错误
#14684: DOC: optimize: 修复 linprog doctest 的偶发性失败
#14685: MAINT: 熵的静态类型
#14686: BUG: 修复最近提交引入的 lsqr.py 中的问题
#14689: MAINT: 将 IOError 别名替换为 OSError 或其他适当的…
#14692: MAINT: 将 hyp2f1 对复数的处理翻译为 Cython 代码,…
#14693: DOC: 更新 OptimizeResult 注释
#14694: 简化 PythranBuildExt 的使用
#14695: BLD: 将 Pythran 版本提升到 0.9.12
#14697: CI: 在基准测试 CI 作业和 environment.yml 中添加 `cffi`
#14699: BUG: 修复 `stats._discrete_distns` 中的 TypeError
#14700: DOC: 更新详细路线图
#14701: ENH:linalg: 添加 Cython 化的 get_array_bandwidth, issymmetric,…
#14706: BUG: 修复 hyp2f1 在 exp(±iπ/3) 附近区域返回正确值的问题
#14707: 更新 constants.py
#14708: BENCH: 缩短在 CI 中超时的 svds 基准测试
#14709: CI: 移除标签器同步
#14712: MAINT: special: _cosine.c 的更新
#14720: DOC: 优化 hess 和一致性
#14721: MAINT: 更正 PR 模板链接
#14723: DOC: 在 `stats.binned_statistic_2d` 文档中添加关于填充的注释
#14727: ENH: sparse.linalg: 添加一个有用的非零初始猜测选项
#14729: DOC: 修复 scipy.optimize.brenth 的文档
#14737: BUG:signal: 将窗口 dtype 与输入匹配
#14739: TST: sparse.linalg: 添加 2D 泊松方程的测试用例
#14743: TST:sparse.linalg: 使用更方便的“assert_normclose”…
#14748: DOC: 修复 scipy.sparse.csgraph 中的矩阵表示
#14751: ENH: refguide-check 中的 numpy 掩码数组
#14755: BUG: 避免当 `ts` 为空时 `solve_ivp` 失败
#14756: MAINT: 来自公共 numpy.linalg 的 LinAlgError
#14759: BLD: 将 site.cfg.example 中的 section 名称从 ALL 改为 DEFAULT
#14760: TST: 抑制 jinja2 弃用警告
#14761: CI: 从 Azure CI 中移除 `pre_release_deps_source_dist` 作业…
#14762: TST: 为 RBFInterpolator 的序列化测试添加种子
#14763: MAINT: 使 solve_ivp 对 t_span 稍微更严格
#14772: DOC:special: 修复指向 jburkardt 的损坏链接
#14787: MAINT: 增加容差值以避免测试失败
#14789: MAINT: 修复 signal/spectral.py 中的一个小拼写错误
#14790: [MRG] BUG: 避免当迭代无法继续时 lobpcg 失败
#14794: 修复 bspline 文档(和注释)中的拼写错误
#14796: MAINT: 允许模块 init 文件中的 F401 和 F403
#14798: BUG: 修正 test_arpack.eval_evec 中的测试循环
#14801: CI, MAINT: 为 azure pre-rel 固定 Cython 版本
#14805: BUG: optimize: 修复 minimize 的最大函数调用验证…
#14808: 修复错误 #14807
#14814: MAINT:integrate: 添加上游 quadpack 更改
#14817: ENH: stats: 添加几何 zscore
#14820: MAINT: 移除 `np.rollaxis` 的使用,改为 `np.moveaxis` 和…
#14821: DOC: 更新了 interp1d 的文档
#14822: 为 scipy.sparse 添加数组 API
#14832: MAINT: 更多作业中使用 py3.10,并将一些 3.8 升级到 3.9
#14833: FIX: 在 Boost.Math 错误时引发 Python OverflowError 异常
#14836: Bug 修复: dqc25f.f
#14837: DOC: sparse.linalg: 修复初始注释不正确的问题…
#14838: TST: 为统计测试设置种子
#14841: MAINT: 增加测试中的容差以避免 Nightly CPython3.10…
#14844: DOC: 将 refguide_check 选项详情添加到 runtests.rst
#14845: DOC: 更新 `radau.py` 中文档字符串的类型说明符
#14848: 拼写错误“copmlex”
#14852: DOC: 修复 `lstsq` 中的文档错误
#14860: minimize: 如果参数被分解,复制用户约束…。
#14865: BUG: stats: 修复 stats.skew 中的崩溃问题
#14868: [MRG] BUG: 更新 lobpcg.py 以验证准确性并发出…
#14871: MAINT: 移除了一个内置名称被遮蔽的陷阱
#14872: DEP: 弃用 `scipy.linalg` 中的私有命名空间
#14878: TST: 提高 equal_bounds 的 rtol 值
#14881: DEP: 弃用 `scipy.special` 中的私有命名空间
#14882: BUG: 将 TNC C 模块转换为 Cython
#14883: DOC:linalg: 澄清 eigh 中的驱动程序默认值
#14884: BUG: optimize: 为 `OptimizeResult` 添加缺失属性…
#14892: DOC: 更正 Hausdorff 距离的文档
#14898: DEP: 弃用 `scipy.stats` 中的私有命名空间
#14902: MAINT:linalg: 将函数重命名为“bandwidth”
#14906: DEP: 弃用 `scipy.constants` 中的私有命名空间
#14913: DEP: 弃用 `scipy.fftpack` 中的私有命名空间
#14916: DEP: 弃用 `stats.biasedurn` 并使其私有化
#14918: DEP: 弃用 ``scipy.interpolate`` 中的私有命名空间
#14919: DEP: 弃用 `scipy.integrate` 中的私有命名空间
#14920: 修复复数菲涅尔
#14923: DEP: 弃用 ``scipy.spatial`` 中的私有命名空间
#14924: 修复 scipy.signal.cwt 示例的范围
#14925: MAINT: 忽略 ``scipy.stats`` 中构建生成的文件
#14927: DEP: 弃用 `scipy.misc` 中的私有命名空间
#14928: MAINT: 修复 runtest.py 覆盖 `$PYTHONPATH`:改为前置
#14934: BUG: optimize: 在 `basinhopping` 中添加 `OptimizeResult` 的缺失属性
#14939: DEP: 弃用 ``scipy.sparse`` 中的私有命名空间
#14941: ENH: optimize: 添加自适应步长的可选参数…
#14943: DOC: 澄清 mac pytest;添加空行
#14944: BUG: 具有特定 QMCEngine 的 MultivariateNormalQMC 移除不必要的…
#14947: DOC: 为 decimate 函数添加示例
#14950: MAINT: 在 scipy.sparse.linalg 中使用 matmul 二进制运算符
#14954: DOC: 在 minres 文档字符串中添加缺失参数
#14955: BUG: stats: 修复 argsreduce 的广播行为
#14960: 更新新网站的链接
#14961: CI: 在 CircleCI 中使用 https 协议进行 git
#14962: DEP: 弃用 `scipy.signal` 中的私有命名空间
#14963: MAINT: `integrate.lsoda` 在 .gitignore 中缺失
#14965: DOC: 更新徽标并添加 favicon
#14966: DEP: 弃用 ``scipy.optimize`` 中的私有命名空间
#14969: CI: 修复文档构建中的 pyparsing 版本
#14972: 指令名称后不要加空格
#14979: BUG: scipy.sparse.linalg.spsolve: 修复由...引起的内存错误
#14988: BLD: 更新 pyproject.toml 以支持 Python 3.10
#14989: ENH: 加快 BSpline.design_matrix 的节点区间查找速度
#14992: _matfuncs_sqrtm 的 Pythran 化版本
#14993: MAINT: 前向移植 1.7.2 发行说明
#15004: ENH: 使 `get_matfile_version` 和其他 `io.matlab` 对象…
#15007: DOC: 在 `gammainccinv` 文档中添加缺失的“regularized”
#15008: MAINT: 恢复对已弃用私有命名空间的访问
#15010: TST: 移除检查 g77 是否链接的脆弱测试
#15013: MAINT: 修复 Py_FindObjects 中的 use-after-free 错误
#15018: CI: 解决 Sphinx 错误
#15019: SciPy 优化求解器(Newton-CG)中的有限差分 Hessian
#15020: ENH: sparse.linalg: 修复了初始猜测“x0”的问题…
#15022: DOC: 缓解牛顿优化不收敛的问题
#15023: CI: 解除 Sphinx 版本限制
#15027: DOC: linalg: 修复一个小的条件文档错误
#15029: DEP: 弃用 `scipy.sparse.linalg` 中的私有命名空间
#15034: DOC: 在 `_superlumodule.c` 中使用 numpydoc 格式的 C 函数
#15035: MAINT: 简化统计中的 UNU.RAN API
#15037: gaussian_filter 的新示例
#15040: MAINT: 添加公共 API 的测试
#15041: DOC: 在 dct 文档中添加关于 norm='ortho' 的警告
#15045: DOC: 更新 toolchain.rst
#15053: TST: 添加一些测试跳过以使轮子构建器 CI 再次变为绿色
#15054: MAINT: 移除 wminkowski
#15055: ENH: 允许 p>0 用于 Minkowski 距离
#15061: MAINT:sparse: expm() 修复冗余导入
#15062: MAINT:BLD: 以文本模式打开 Tempita 文件
#15066: CI: 将 gcc 从 4.8 提升到 6
#15067: DOC: 更新 SuperLU 库的损坏链接
#15078: MAINT: 更新 `stats.iqr` 以适应已弃用的 `np.percentile`…
#15083: MAINT: stats: 将 UNU.RAN 功能分离到其自己的子模块
#15084: MAINT: 将 `scipy.io.matlab` 包含在公共 API 中
#15085: ENH: 支持创建模拟 SOS 输出
#15087: TST: 审查 ``_assert_within_tol`` 位置参数
#15095: MAINT: 更新 gitignore 以忽略私有目录
#15099: MAINT: ScalarFunction 记住 best_x
#15100: MAINT: 将 `stats.contingency` 包含在公共 API 中
#15102: ENH: 为 DCT/DST 添加 orthogonalize 参数
#15105: MAINT: 在已弃用模块中添加缺失的导入
#15107: BUG: 更新 chi_gen 以使用 scipy.special.gammaln
#15109: MAINT: 从 scipy.stats 中移除 NaiveRatioUniforms
#15111: ENH: 添加 special.log_expit 并在 stats.logistic 中使用
#15112: DOC: 更新 signal.butter 中“Wn”的定义
#15114: DOC: 按名称添加费米-狄拉克分布
#15119: DOC: 修复 `stats.logistic` 中 `logistic.sf` 的符号链接
#15120: MAINT: 安装 `sparse.linalg._eigen` 测试并修复测试失败
#15123: MAINT: interpolate: 将稀疏依赖从 cython 移动…
#15127: DOC: 更新 Linux 构建说明以提及 C++
#15134: DOC: 改进 Lomb-Scargle 示例
#15135: ENH: Carlson 对称椭圆积分
#15137: DOC: special: 在 multigammaln 和 roots_legendre 中添加“示例”…
#15139: 在 Lomb-Scargle 示例中使用 constrained_layout
#15142: ENH: stats.sampling: 添加 SROU 方法
#15143: MAINT: 移除一些未使用的导入
#15144: BUG: 在 runtests.py 中添加缺失的“errno”导入
#15157: ENH: gh-14279 的 rebase 版本
#15159: DOC: stats: 修复 `stats.sampling` 教程中的一个标题
#15161: DOC: 1.8.0 发行说明更新
#15175: MAINT: 1.8.0 发行说明和 .gitignore 的向后移植
#15181: BUG: 有条件跳过的 pytest 装饰器是“skipif”
#15191: MAINT: 1.8.0rc1 之前的版本界限
#15192: MAINT: 将 `pytest.warns(None)` 替换为 `warnings.catch_warnings`
#15194: BUG: stats: 修复 recipinvgauss 的数值问题
#15214: TST: sparse.linalg: 仅存储 PROPACK 测试矩阵;生成…
#15220: BUG: sparse.linalg: 修复弃用警告
#15225: 使稀疏数组/矩阵的 0 次幂返回单位矩阵并…
#15229: BUG: minimize 应该适用于标量,解决了 #15228
#15232: BUG: 为稀疏数组添加 rmul
#15236: BLD: 更新 setup.py 以支持 Python 3.10
#15248: MAINT: 1.8.0rc2 向后移植
#15249: FIX: PROPACK MKL 兼容性
#15253: BUG: special: 修复 `stdtr` 和 `stdtrit` 在 df 无限时的行为
#15256: MAINT: 使用 PEP440 而非 distutils
#15268: CI: 将 setuptools 固定到 59.6.0,Pythran 固定到 0.10.0 (Windows)…
#15270: MAINT: 将 `moduleTNC` 扩展名改回 `_moduleTNC`
#15271: TST: 略微提高新 lobpcg 测试的容差
#15275: MAINT: 修复 `signal._signaltools` 中的导入
#15278: MAINT: 移除 `.gitmodules` 中非默认设置(除了 `shallow`)
#15288: BLD 遵守 setup.py 中的 --skip-build 标志
#15293: BUG: 修复 Hausdorff 整数溢出
#15301: TST: 更新 `sparse.linalg` 测试,以解决容差导致的失败
#15318: BLD: 更新 pyproject.toml 以便不对 aarch64 + PyPy 强制指定 numpy 版本
#15322: BLD: 将 SciPy 1.8.0 的最低 Pythran 版本更新到 0.10.0
#15323: MAINT: 过滤统计函数中的 RuntimeWarnings
#15328: MAINT: interpolate: csr_matrix -> csr_array
#15331: BUG: stats._unuran: 修复无效的属性查找
#15332: CI: 将 CircleCI 文档构建中的 numpy 固定到 1.21.5
#15334: BUG: stats._unuran: 修复剩余的属性查找错误
#15335: CI: 在 Azure refguide 检查作业中将 numpy 固定到 1.21.5
#15341: BUG: `highs-ds` 返回 memoryviews 而不是 np.arrays 用于…
#15397: BUG: 确保导入了 vendored pep440
#15416: BUG: 修复 wasm 目标的 PyUFunc
#15418: MAINT: 1.8.0 rc3 第一轮向后移植
#15421: BUG: stats: mode: 使用 np.moveaxis 修复负轴问题…
#15432: MAINT: 发布分支 PROPACK 开关(默认关闭)
#15515: MAINT: 修复损坏的链接并移除 CI 徽章