SciPy 1.8.0 发布说明#
SciPy 1.8.0 是6个月辛勤工作的结晶。它包含了许多新功能、大量的错误修复、改进的测试覆盖率和更好的文档。此版本中有一些弃用和API更改,如下文所述。我们鼓励所有用户升级到此版本,因为有许多错误修复和优化。在升级之前,我们建议用户检查自己的代码是否使用了已弃用的SciPy功能(为此,请使用 python -Wd
运行您的代码,并检查是否有 DeprecationWarning
)。我们的开发重点现在将转向1.8.x分支上的错误修复版本,并在主分支上添加新功能。
此版本需要 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-spline 的设计矩阵。
BSpline
类中的新方法 from_cubic
允许将 CubicSpline
对象转换为 BSpline
对象。
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'
时使用。
scipy.optimize.minimize
的 TNC
方法已被重写以使用 Cython 绑定。这也修复了回调改变优化状态的问题。
为 basinhopping
中的自适应步长调整添加了可选参数 target_accept_rate
和 stepwise_factor
。
approx_fprime
的 epsilon
参数现在是可选的,以便它可以有一个与 scipy.optimize
中大多数其他函数一致的默认值。
scipy.signal
改进#
在 zpk2sos
中添加 analog
参数,默认值为 False
,并添加新的配对选项 'minimal'
以构建模拟和最小离散 SOS 数组。tf2sos
使用 zpk2sos;在此处也添加 analog
参数,并将其传递给 zpk2sos
。
savgol_coeffs
和 savgol_filter
现在支持偶数窗口长度。
添加了 Chirp Z-变换 和 Zoom FFT,可通过 scipy.signal.CZT
和 scipy.signal.ZoomFFT
使用。
scipy.sparse
改进#
已添加数组API用于早期测试和反馈;此工作正在进行中,用户应预期在接下来的几个版本中会有小的API改进。更多信息请参阅 scipy.sparse
的文档字符串。
maximum_flow
引入了可选的关键字参数 method
,该参数接受 'edmonds-karp'``(Edmonds Karp 算法)或 ``'dinic'``(Dinic 算法)。此外,
’dinic’`` 被用作 method
的默认值,这意味着除非另有指定,否则将使用 Dinic 算法来计算最大流。请参阅 此评论 中支持的算法之间的比较。
参数 atol
和 btol
现在在 scipy.sparse.linalg.lsmr
中默认设置为 1e-6,以匹配 scipy.sparse.linalg.lsqr
中的默认值。
在 scipy.sparse.linalg.tfqmr
中添加了用于一般非奇异非厄米线性系统的无转置准最小残差算法(TFQMR)。
稀疏SVD库PROPACK现在已与SciPy一起提供,并通过 scipy.sparse.svds 暴露接口,使用 solver='PROPACK'
。对于某些问题,这可能比默认的ARPACK更快和/或更准确。由于潜在的Windows问题,我们计划在下一个版本中解决,因此目前PROPACK功能是可选的——您必须在运行时指定 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
计算逻辑斯蒂 sigmoid 函数的对数。该函数被设计为在大正数和大负数输入时提供准确的结果,因此避免了在朴素实现 log(expit(x))
中会出现的问题。
一套用于椭圆积分的五个新函数:scipy.special.ellipr{c,d,f,g,j}
。这些是 Carlson 对称椭圆积分,在计算上优于经典的勒让德积分。之前的版本包含了一些来自 Cephes 库的椭圆积分(scipy.special.ellip{k,km1,kinc,e,einc}
),但缺少第三类积分(勒让德的 Pi),这可以使用新的 Carlson 函数进行评估。新的 Carlson 椭圆积分函数可以在复平面上进行评估,而 Cephes 库的函数仅定义为实数输入。
scipy.special.hyp2f1
中的几个缺陷已得到修正。现在对于 z
接近 exp(+-i*pi/3)
的情况,返回了大致正确的值,修复了 #8054。对于这些 z
的计算现在通过 López 和 Temme (2013) 推导出的级数进行,该级数在这些区域收敛。此外,当 a
、b
和/或 c
中有一个或多个为非正整数时的退化情况,现在以与 mpmath 的 hyp2f1 实现 一致的方式处理,修复了 #7340。这些修复是作为将 hyp2f1 的 Fortran 77 实现逐块重写为 Cython 的努力的一部分。目前,这一重写工作已完成约 50%。
scipy.stats
改进#
scipy.stats.qmc.LatinHypercube
引入了两个新的可选仅关键字参数,optimization
和 strength
。optimization
可以是 None
或 random-cd
。在后一种情况下,执行随机排列以改善中心差异。strength
可以是 1 或 2。1 对应于经典的 LHS,而 2 具有更好的子投影属性。这种构造被称为基于正交数组的强度为 2 的 LHS。在这两种情况下,输出仍然是一个 LHS。
scipy.stats.qmc.Halton
更快,因为其底层 Van der Corput 序列已移植到 Cython。
alternative
参数被添加到 kendalltau
和 somersd
函数中,以允许单边假设检验。同样,skewtest
、kurtosistest
、ttest_1samp
、ttest_ind
和 ttest_rel
的掩码版本现在也有一个 alternative
参数。
添加 scipy.stats.gzscore
以计算几何 z 分数。
已将用于从任意单变量非均匀连续和离散分布中采样的随机变量生成器添加到新的 scipy.stats.sampling
子模块中。为了提高性能,使用了 UNU.RAN C 库的实现。添加的生成器包括:
TransformedDensityRejection
DiscreteAliasUrn
NumericalInversePolynomial
离散指南表
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'
度量现在返回nan
,以与np.std
保持一致。函数 scipy.spatial.distance.wminkowski 已被移除。要达到与之前相同的结果,请使用
minkowski
距离函数,并使用(可选的)``w=`` 关键字参数来指定权重。
其他更改#
一些 Fortran 77 代码被现代化以兼容 NAG 的 nagfor Fortran 编译器(参见,例如 PR 13229)。
threadpoolctl
现在可以被我们的测试套件使用,以显著提高并行测试套件运行的效率。
1.8.0 版本关闭的问题#
#592: 统计回顾:变异(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: 对于多元问题,它不应该取一个雅可比矩阵吗…
#12100: solve_ivp: 自定义 t_eval 列表和终止事件
#12106: `stats.tmean` 的 `axis` 选项似乎不起作用…
#12192: `scipy.stats.rv_continuous.moment` 不接受数组输入
#12502: 在等式…情况下,雅可比数值微分中的除以零问题
#12981: SLSQP 约束最小化错误在 1.5.2 中
#12999: scipy.stats.ks_2samp 在双侧自动和精确模式下的错误…
#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: 空间变换.旋转对象的项分配
#14140: 可能不必要的 PchipInterpolator 无效值警告
#14152: zpk2sos 在巴特沃斯带通滤波器…时未能正确工作
#14165: scipy.optimize.minimize method=’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: 使用`statistic=sum`时,`binned_statistic_dd`的奇怪输出
#14340: 使用列表或旋转数组初始化旋转
#14346: scipy.stats.rv_continuous.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.moveaxis 替换 np.rollaxis
#14501: runtests.py 覆盖了 `$PYTHONPATH`
#14514: linprog 关键字参数未被识别
#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 Devdocs 工作流程需要安装一些包…
#14680: BUG: scipy.stats.entropy 中的误导性文档
#14683: DOC: OptimizeResult 注释放置在属性部分之前,…
#14733: BUG: resample_poly 不保留数据类型
#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` 期望二维数组,尽管文档中声明…
#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 类型 I 在 norm = “ortho” 时导致错误…
#15051: BUG: 在轮子构建器仓库中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 版本类已被弃用`
#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-变换,缩放 FFT
#10504: ENH: 卡尔森对称椭圆积分。
#11263: MAINT:optimize: 遵守用户指定的 rel_step
#11754: ENH: stats: 更新 `variation`。
#11954: ENH: 改进 scipy.stats 中的 ARGUS rv 生成
#12143: BUG: 在 `scipy.stats.tmean` 中正确使用 `axis`
#12146: DOC: 添加文档以解释牛顿方法在数组上的行为
#12197: BUG: 修复 moments 方法以支持数组和列表
#12889: MAINT: 处理 `minimize` 中 `(bounds.lb == bounds.ub).any()` 的情况
#13002: ENH: stats: Tukey’s 真实显著差异检验
#13096: BUG: 优化: 对 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中minimizer的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: 优化: 修复 `minimize` 的最大函数调用验证…
#13958: ENH: stats: 为T检验的掩码版本添加`alternative`参数
#13960: ENH: stats: 在掩码正态性测试中添加 `alternative`
#14007: BUG: 修复Brent方法中的根区间逻辑(问题 #13737)
#14024: 增强: 为 `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: 增强: 为 `scipy.spatial.geometric_slerp` 添加注解
#14183: DOC: 添加示例/更新 scipy.stats 中 pearsonr 的 mstats 文档
#14186: TST, MAINT: hausdorff 测试清理
#14187: DOC: 插值: rbf 也有 kwargs。
#14191: MAINT:TST:linalg 现代化测试断言
#14192: BUG: stats: 修复 multivariate_t.rvs 中的形状处理
#14197: CI: azure: 修复 ‘skip 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: 修复在使用非一维x0和自适应时的Nelder-Mead逻辑
#14211: 修复了 gaussian_kde 的文档(kde.factor 描述)
#14213: ENH: stats: somersd: 添加 alternative 参数
#14214: 增强:改进 `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 中的 maybe-uninitialized 警告
#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: 优化: 修复模块TNC和minpack.h中的一些警告
#14261: BLD: 修复 `optimize/_trlib` 的包含顺序和构建警告
#14263: DOC: 前向移植 1.7.0 发布说明
#14268: MAINT: 使用包装器替换 PyArrayObject* 中的直接字段访问…
#14274: MAINT: 优化中更多的标量数组转换修复
#14275: MAINT: 更新嵌入的 uarray,这是自动分派所必需的
#14278: MAINT: 两个小的隐式标量-数组转换修复
#14281: 增强:注释 `scipy.spatial.qhull` 的数组数据类型
#14285: DEV: 从 environment.yml 中移除 scikit-umfpack
#14287: TST: 为 hyp2f1 的复数值添加测试,以期待…
#14291: TST: 拆分组合的 LSAP 输入验证测试
#14293: MAINT: 移除最后一批已弃用的 `PyEval_*` 用法
#14294: 增强:在 `scipy.spatial.ckdtree` 和 `distance` 中注释数组数据类型
#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: 增强:补充稀疏矩阵(如`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 方法可序列化
#14358: ENH: 用于 maximum_flow 的 Dinic 算法
#14359: ENH: 使用 try_last=True 设置 fft 后端
#14362: 使用列表推导式
#14367: BUG: 在 `memmove` 中检查空指针
#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: 代码检查失败的报告显示为成功
#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 测试中移除跳过和 xfailed 测试的打印…
#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: 维护: 修复 `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: 使用 Tempita 文件进行 bspline (信号)
#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: 确保在构建时Azure作业步骤失败…”
#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: 稀疏: 修复一个 DIA.tocsc 的错误
#14556: 修复强连通分量详细信息的链接…
#14559: WIP: TST: 为 Pythran somersd 添加测试
#14561: DOC: 在 (gen)laguerre 文档字符串中添加了参考和示例…
#14564: ENH: 添加线程化的 Van Der Corput
#14571: 修复 _mannwhitneyu.py 示例中的重复单词
#14572: 设置BSpline的节点数组的最小长度
#14578: DOC: 在球贝塞尔函数的文档字符串中添加了示例
#14581: MAINT: 重构 `linalg.tests.test_interpolative::TestInterpolativeDecomposition::test_id`
#14588: ENH: 在 ``scipy.spatial.distance`` 中添加了 ``kulczynski1``
#14592: DOC: 澄清 scipy.stats 中 norminvgauss 的参数
#14595: 移除 ``scipy/linalg/src/id_dist/src/prini.f`` 中未使用的子程序
#14601: 修复了numpy和scipy之间插值的不一致性
#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: 提高容差以通过 Apple 上的 ``special.tests``…
#14628: DOC: 澄清 scipy.optimize.linprog 中 options 参数的使用
#14629: ENH: 在 scipy.stats.binned_statistic 中优化 std
#14630: DOC: 添加引用文件
#14631: 修复旧编译器的unuran构建问题
#14633: BUG: scipy.stats._unran: 只向 include_dirs 发送字符串
#14634: DOC: 修复 Wikipedia bootstrap 链接
#14635: DOC: stats: 修复多元t分布文档中的pdf方程
#14637: MAINT: 复制离散分布字典
#14643: MAINT: 解决 gh6019, 最小化标量显示
#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 Issue 表单模板
#14673: BLD: 修复包含顺序,Python.h 在标准头文件之前
#14676: BUG: 修复失败的基准测试 optimize_qap.QuadraticAssignment.track_score
#14677: MAINT: 基于文件路径的 GitHub 标签器
#14682: DOC: 修复 mannwhitneyu docstring 中的拼写错误
#14684: DOC: 优化: 修复 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任务中添加`cffi`,并在environment.yml中添加
#14699: BUG: 修复 `stats._discrete_distns` 中的 TypeError
#14700: DOC: 更新详细路线图
#14701: ENH:linalg: 添加 Cythonized 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: 匹配窗口数据类型到输入
#14739: TST: sparse.linalg: 添加二维泊松方程的测试用例
#14743: TST:sparse.linalg: 使用更方便的 “assert_normclose”…
#14748: DOC: 修复 scipy.sparse.csgraph 中的矩阵表示
#14751: ENH: refguide-check 中的 numpy masked_arrays
#14755: BUG: 避免当 `ts` 为空时 `solve_ivp` 失败
#14756: MAINT: 来自公共 numpy.linalg 的 LinAlgError
#14759: BLD: 在 site.cfg.example 中将部分名称从 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: 允许在模块初始化文件中使用 F401 和 F403
#14798: BUG: 修正 test_arpack.eval_evec 中的测试循环
#14801: CI, MAINT: 为 azure 预发布固定 Cython
#14805: BUG: 优化: 修复最小化函数调用验证…
#14808: 修复 Bug #14807
#14814: MAINT:integrate: 添加上游 quadpack 更改
#14817: ENH: stats: 添加几何z分数
#14820: MAINT: 使用 `np.moveaxis` 替代 `np.rollaxis` 并…
#14821: DOC: 更新了 interp1d 的文档
#14822: 为 scipy.sparse 添加数组 API
#14832: MAINT: 在更多作业中使用py3.10,并将一些3.8升级到3.9
#14833: 修复:在Boost.Math错误时引发Python OverflowError异常
#14836: 错误修复:dqc25f.f
#14837: DOC: sparse.linalg: 修正了初始…时的不正确注释
#14838: TST: 为统计测试设置种子
#14841: MAINT: 增加测试中的容差以避免 Nightly CPython3.10…
#14844: DOC: 在 runtests.rst 中添加 refguide_check 选项的详细信息
#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: 优化: 为 `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: 维护:忽略在 ``scipy.stats`` 中生成的构建文件
#14927: DEP: 弃用 `scipy.misc` 中的私有命名空间
#14928: MAINT: 修复 runtest.py 覆盖 `$PYTHONPATH`: 改为前缀添加
#14934: BUG: optimize: 在 `basinhopping` 中添加 OptimizeResult 的缺失属性
#14939: DEP: 弃用 ``scipy.sparse`` 中的私有命名空间
#14941: ENH: 优化: 添加自适应步长的可选参数…
#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: 更新logo并添加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: 增强:使 `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优化求解器中的有限差分Hessian(Newton-CG)
#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: 简化 stats 中的 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: 允许 Minkowski 距离的 p>0
#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 添加正交化参数
#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: 维护: 安装 `sparse.linalg._eigen` 测试并修复测试失败
#15123: MAINT: interpolate: 将 `sparse` 依赖从 cython…
#15127: DOC: 更新Linux构建说明以提及C++
#15134: DOC: 改进Lomb-Scargle示例
#15135: ENH: 卡尔森对称椭圆积分。
#15137: DOC: special: 为 multigammaln 和 roots_legendre 添加 ‘Examples’…
#15139: 在Lomb-Scargle示例中使用constrained_layout
#15142: ENH: stats.sampling: 添加 SROU 方法
#15143: MAINT: 移除一些未使用的导入。
#15144: BUG: 在 runtests.py 中添加缺失的 ‘errno’ 导入
#15157: ENH: gh-14279 的重新基准版本
#15159: DOC: stats: 修复 `stats.sampling` 教程中的标题
#15161: DOC: 1.8.0 发布说明更新
#15175: MAINT: 1.8.0 回传用于 relnotes 和 .gitignore
#15181: BUG: 用于条件跳过的pytest装饰器是’skipif’
#15191: MAINT: 1.8.0rc1 之前的版本界限
#15192: 维护: 使用 `warnings.catch_warnings` 替换 `pytest.warns(None)`
#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: 修复: 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: 移除非默认设置(除了 `shallow`)在 `.gitmodules`
#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: 确保引入了供应商的 pep440
#15416: BUG: 修复针对 wasm 目标的 PyUFunc
#15418: MAINT: 1.8.0 rc3 回传第一轮
#15421: BUG: stats: mode: 使用 np.moveaxis 修复负轴问题…
#15432: MAINT: 发布分支 PROPACK 开关(默认关闭)
#15515: MAINT: 修复损坏的链接并移除CI徽章