SciPy 1.4.0 发行说明#
SciPy 1.4.0 是 6 个月辛勤工作的结晶。它包含许多新功能、大量错误修复、改进的测试覆盖范围和更完善的文档。此版本中有多项弃用和 API 变更,详情见下文。我们鼓励所有用户升级到此版本,因为它包含大量的错误修复和优化。在升级之前,我们建议用户检查自己的代码是否使用了已弃用的 SciPy 功能(为此,请使用 python -Wd 运行代码并检查 DeprecationWarning)。我们的开发重点现在将转向 1.4.x 分支的错误修复发布,以及在主分支 (master) 上添加新功能。
此版本要求 Python 3.5+ 以及 NumPy >=1.13.3(适用于 Python 3.5, 3.6)、>=1.14.5(适用于 Python 3.7)、>= 1.17.3(适用于 Python 3.8)
若要在 PyPy 上运行,需要 PyPy3 6.0+ 和 NumPy 1.15.0。
此版本的亮点#
一个新的子模块
scipy.fft现在取代了scipy.fftpack;这意味着支持long double变换、更快的旋转多维变换、改进的算法时间复杂度、全局解释器锁 (GIL) 的释放以及对线程行为的控制scipy.sparse.linalg中支持pydata/sparse数组对若干
scipy.special函数的文档和功能进行了重大改进,并增加了一些新内容scipy.stats中增加了广义逆高斯分布scipy.sparse.csgraph.maximum_flow中实现了 Edmonds-Karp 算法scipy.spatial.SphericalVoronoi现在支持 n 维输入,具有线性内存复杂度,提高了性能,并支持单半球生成器
新功能#
基础设施#
现在可以使用 runtests.py --doc 构建文档
scipy/scipy-dev 仓库中现在提供了一个 Dockerfile,以方便开始 SciPy 开发。
scipy.constants 改进#
scipy.constants 已更新为 CODATA 2018 常数。
scipy.fft 已添加#
scipy.fft 是一个新的子模块,取代了 scipy.fftpack 子模块。在大多数情况下,它是 numpy.fft 和 scipy.fftpack 的直接替代品。但有一些重要的区别,scipy.fft: - 对实数变换 (rfft) 使用 NumPy 的约定。这意味着返回值是一个复数数组,大小是完整 fft 输出的一半。这与 fftpack 的输出不同,后者返回一个代表打包在一起的复数分量的实数数组。 - 对于 norm=None,逆向实数到实数变换(idct 和 idst)的归一化方式与 ifft 相同。这意味着恒等式 idct(dct(x)) == x 现在对所有归一化模式都为 True。 - 不包含来自 fftpack 的卷积或伪微分算子。
此子模块基于 pypocketfft 库,该库由 pocketfft 的作者开发,最近也被 NumPy 采用。pypocketfft 相比 Fortran 的 FFTPACK 具有多项优势: - 支持 long double (np.longfloat) 精度变换。 - 使用向量化实现更快的阶多维变换 - Bluestein 算法消除了 FFTPACK 最坏情况下的 O(n^2) 复杂度 - 变换期间释放全局解释器锁 (GIL) - 通过 workers 参数实现多维变换的可选多线程
请注意,scipy.fftpack 尚未被弃用,并将继续维护,但现在被视为遗留模块。建议新代码尽可能使用 scipy.fft。
scipy.fftpack 改进#
scipy.fftpack 现在使用 pypocketfft 来执行 FFT,提供了上面列出的与 scipy.fft 相同的速度和精度优势,但没有改进 API。
scipy.integrate 改进#
函数 scipy.integrate.solve_ivp 现在有一个 args 参数。这允许传递给该函数的自定义函数具有额外的参数,而无需为其创建包装函数或 lambda 表达式。
scipy.integrate.solve_ivp 现在可以返回一个 y_events 属性,代表 ODE 在事件发生时的解
实现了新的 OdeSolver — DOP853。这是一种最初用 Fortran 实现的高阶显式 Runge-Kutta 方法。现在我们提供了一个纯 Python 实现,可以通过 solve_ivp 及其所有功能来使用。
当指定带有权重积分的断点时,scipy.integrate.quad 提供了更好的用户反馈。
scipy.integrate.quad_vec 现在可用于向量值函数的通用积分
scipy.interpolate 改进#
scipy.interpolate.pade 现在可以优雅地处理复数输入数据
scipy.interpolate.Rbf 现在可以插值多维函数
scipy.io 改进#
scipy.io.wavfile.read 现在可以从带有畸形文件头的 WAV 文件中读取数据,类似于其他现代 WAV 文件解析器
scipy.io.FortranFile 现在有一组扩展的 Exception 类,用于处理格式不良的文件
scipy.linalg 改进#
函数 scipy.linalg.subspace_angles(A, B) 现在可以为复数矩阵给出正确的结果。在此之前,该函数仅对实数矩阵返回正确值。
为 scipy.linalg.norm 增加了新的布尔关键字参数 check_finite;用于确定是否检查输入矩阵是否仅包含有限数值。禁用此选项可能会提高性能,但如果输入确实包含无穷大或 NaN,可能会导致问题(崩溃、无法终止)。
scipy.linalg.solve_triangular 对 C 顺序排列的三角矩阵提高了性能
为 ?geequ, ?geequb, ?syequb, 和 ?heequb 添加了 LAPACK 包装器
由于在涉及通过 _compute_lwork 使用 LAPACK 例程的操作中进行了内部优化,可能会观察到一些性能提升。对于小数组的操作尤其如此。
scipy.linalg.lapack 中现在提供了块 QR 包装器
scipy.ndimage 改进#
scipy.optimize 改进#
现在可以在 scipy.optimize.differential_evolution 中使用线性和非线性约束。
scipy.optimize.linear_sum_assignment 已使用 C++ 重写以提高性能,现在允许输入成本为无穷大。
添加了 ScalarFunction.fun_and_grad 方法,以便同时方便地检索函数求值和梯度求值
scipy.optimize.minimize 的 BFGS 方法通过在某些情况下避免重复求值提高了性能
当目标函数返回数组而不是标量时,提供更好的用户反馈。
scipy.signal 改进#
添加了一个使用重叠相加法计算卷积的新函数,名为 scipy.signal.oaconvolve。与 scipy.signal.fftconvolve 一样,此函数支持指定进行卷积的维度。
scipy.signal.cwt 现在支持复数小波。
choose_conv_method 的实现已更新以反映新的 FFT 实现。此外,性能得到了显著提高(在边缘情况下提升尤为剧烈)。
函数 upfirdn 现在有一个 mode 关键字参数,可用于选择信号边界处使用的信号扩展模式。通过新增的 padtype 参数,这些模式也可在 resample_poly 中使用。
scipy.signal.sosfilt 现在受益于 Cython 代码,性能得到提升
scipy.signal.resample 现在尽可能利用 rfft,效率更高
scipy.sparse 改进#
现在可以在 scipy.sparse.linalg.svds 中使用 LOBPCG 方法。
scipy.sparse.linalg.LinearOperator 现在除了支持 rmatvec 外,还支持用于伴随矩阵-矩阵乘法的 rmatmat 操作。
多项稳定性更新使 scipy.sparse.linalg.lobpcg 中的 LOBPCG 特征值求解器能够支持对称和埃尔米特特征值问题的 float32 精度。
添加了最大流问题的求解器 scipy.sparse.csgraph.maximum_flow。
scipy.sparse.csgraph.maximum_bipartite_matching 现在允许非方阵输入,不再要求必须存在完美匹配,并且提高了性能。
scipy.sparse.lil_matrix 转换在某些场景下表现更好
scipy.sparse.linalg 对 pydata/sparse 数组提供了基础支持
scipy.sparse.linalg.spsolve_triangular 现在支持 unit_diagonal 参数,以提高与其稠密矩阵对应函数 scipy.linalg.solve_triangular 的调用签名相似性
assertAlmostEqual 现在可以用于稀疏矩阵,因为稀疏矩阵增加了对 __round__ 的支持
scipy.spatial 改进#
捆绑的 Qhull 库已升级至 2019.1 版本,修复了若干问题。不再对其应用 Scipy 特有的补丁。
scipy.spatial.SphericalVoronoi 现在具有线性内存复杂度,提高了性能,并支持单半球生成器。还增加了对位于大圆弧上的生成器(测地线输入)以及 n 维生成器的处理支持。
scipy.spatial.transform.Rotation 现在包含计算平均旋转、生成 3D 旋转群以及减少具有旋转对称性的旋转的函数。
scipy.spatial.transform.Slerp 现在可以使用标量参数调用
scipy.spatial.voronoi_plot_2d 现在支持远点 Voronoi 图
scipy.spatial.Delaunay 和 scipy.spatial.Voronoi 现在具有用于跟踪它们是否为远点图的属性
scipy.special 改进#
Voigt 配置文件已添加为 scipy.special.voigt_profile。
为 Wright Omega 函数 (scipy.special.wrightomega) 添加了实数调度。
添加了黎曼 zeta 函数的解析延拓。(黎曼 zeta 函数是 scipy.special.zeta 的单参数变体。)
第一类完全椭圆积分 (scipy.special.ellipk) 现在可在 scipy.special.cython_special 中使用。
scipy.special.hyp1f1 对于实数参数的准确性得到了提高。
许多函数的文档都得到了改进。
scipy.stats 改进#
添加了 scipy.stats.multiscale_graphcorr,这是一种处理高维和非线性数据集的独立性检验。它比其他 scipy.stats 检验具有更高的统计功效,同时是唯一一个处理多变量数据的检验。
添加了广义逆高斯分布 (scipy.stats.geninvgauss)。
现在可以通过提供之前函数调用的结果,高效地重复使用带新值的 scipy.stats.binned_statistic_dd。
scipy.stats.hmean 现在能更优雅地处理包含零的输入。
beta-二项分布现在可在 scipy.stats.betabinom 中使用。
scipy.stats.zscore, scipy.stats.circmean, scipy.stats.circstd, 和 scipy.stats.circvar 现在支持 nan_policy 参数,以增强对 NaN 值的处理
scipy.stats.entropy 现在接受 axis 参数
scipy.stats.gaussian_kde.resample 现在接受 seed 参数以实现可重复性
由于改进了缓存使用,scipy.stats.kendalltau 的性能有所提高,尤其是对于大型输入
scipy.stats.truncnorm 分布已重写以支持更宽的尾部
弃用功能#
scipy 弃用项#
对通过根 SciPy 命名空间公开的 NumPy 函数的支持已被弃用,并将于 2.0.0 中移除。例如,如果你使用 scipy.rand 或 scipy.diag,你应该修改代码,分别直接使用 numpy.random.default_rng 或 numpy.diag。在当前持续的 Scipy 1.x 发布系列中,它们仍然可用。
此规则的例外是将 scipy.fft 作为函数使用 – scipy.fft 现在仅打算作为模块使用,因此调用 scipy.fft(...) 的功能将在 SciPy 1.5.0 中移除。
在 scipy.spatial.Rotation 中,方法 from_dcm、as_dcm 分别更名为 from_matrix、as_matrix。旧名称将在 SciPy 1.6.0 中移除。
方法 Rotation.match_vectors 已弃用,取而代之的是 Rotation.align_vectors,后者为相同的功能提供了更符合逻辑且通用的 API。旧方法将在 SciPy 1.6.0 中移除。
向后不兼容的变更#
scipy.special 变更#
已移除弃用的函数 hyp2f0, hyp1f2, 和 hyp3f0。
已移除弃用的函数 bessel_diff_formula。
函数 i0 不再注册到 numpy.dual 中,因此无论是否导入了 scipy.special,numpy.dual.i0 都将无条件引用 NumPy 版本。
函数 expn 已更改为在其定义域之外 (x, n < 0) 返回 nan 而非 inf。
scipy.sparse 变更#
如果稀疏矩阵的重塑 (reshape) 维度不是二维的,现在会引发错误,而不是猜测其含义。该行为现在与 SciPy 1.1.0 之前版本一致。
CSR 和 CSC 稀疏矩阵类在越界索引时,现在应返回相同类型的空矩阵。以前,在某些 SciPy 版本中,这会引发 IndexError。这一改变主要是为了与 ndarray 和 numpy.matrix 的语义保持更高的一致性。
scipy.signal 变更#
scipy.signal.resample 对长度为 1 的信号输入的处理已修正为输出一个常数 (DC) 值而非脉冲,这与 FFT 方法中关于信号周期性的假设是一致的。
scipy.signal.cwt 现在对小波数据执行复共轭和时间反转,这是一个针对时间不对称小波的向后不兼容错误修复。
scipy.stats 变更#
添加了 scipy.stats.loguniform(作为 scipy.stats.reciprocal 的别名),并配有更完善的文档。loguniform 生成在对数空间中概率相等的随机变量;例如,如果使用 loguniform(10 ** 0, 10 ** 2).rvs(),则 1、10 和 100 出现的概率都是一样的。
其他变更#
scipy.integrate.solve_ivp 的 LSODA 方法现在能正确检测刚性问题。
scipy.spatial.cKDTree 现在可以接受并正确处理空输入数据
scipy.stats.binned_statistic_dd 现在以数值稳定的方式计算标准差统计量。
如果输入数据包含 np.nan 或 np.inf,scipy.stats.binned_statistic_dd 现在会抛出错误。类似地,在 scipy.stats 中,如果输入数据包含 np.nan 或 np.inf 的任何实例,所有连续分布的 .fit() 方法现在都会抛出错误。
1.4.0 已关闭的问题#
#1255: Scipy.sparse.linalg gmres 的 maxiter 损坏,此外还有……
#1301: 合并 interpolate 和 integrate 包中的 multipack.h……
#1739: 单精度 FFT 准确度不足。(Trac #1212)
#1795: stats test_distributions.py: 替换旧的模糊测试 (Trac #1269)
#2233: fftpack 在处理大数组时发生段错误 (Trac #1714)
#2434: rmatmat 与线性算子对象的复杂化
#2477: stats.truncnorm.rvs() 对负数不给出对称结果……
#2629: FFTpack 在非 2 的幂次上速度慢得令人无法接受
#2883: scipy.interpolate.splrep 中的 UnboundLocalError
#2956: 功能请求:为 stats.entropy 函数增加 axis 参数
#3528: test_djbfft 发生段错误(可能与 MKL 有关?)
#3793: cwt 也应返回复数数组
#4464: TST: residue/residuez/invres/invresz 没有任何测试
#4561: BUG: residuez 中的 tf 滤波器末尾和开头零点问题
#4669: 重写 sosfilt 以在输入上进行单次循环?
#5040: BUG: (c)KDTrees 的空数据处理
#5112: boxcox 变换边缘情况可以更加细化
#5441: scipy.stats.ncx2 在 nc=0 时失败
#5502: optimize.curve_fit 中未处理 args 关键字
#6484: Qhull 段错误
#6900: 带有无限权重的 linear_sum_assignment
#6966: 超几何函数文档缺失
#6999: 压缩 loadmat() 中可能的误报损坏检查
#7018: 需要广播的 ydata 使 curve_fit 无法计算……
#7140: Windows 文档构建问题
#7327: interpolate.ndgriddata.griddata 导致 Python 崩溃而不是……
#7396: MatrixLinearOperator 实现了 _adjoint(),但没有实现 _transpose()
#7400: BUG(?): special: factorial 和 factorial2 返回 0 维……
#7434: scipy.stats 连续分布测试遗漏了 25 个分布
#7491: 若干 scipy.stats 分布 (fisk, burr, burr12, f) 返回……
#7759: 大样本量下 stats.kruskal 发生溢出
#7906: scipy.interpolate.UnivariateSpline.integral 结果错误……
#8165: ENH: 使 hmean 功能匹配 R 语言
#8417: optimimze.minimize(method=’L-BFGS-B’, options={‘disp’: True})……
#8535: UnivariateSpline 中严格递增的要求
#8815: [BUG] GMRES: 迭代次数仅在回调时增加……
#9207: scipy.linalg.lu_factor 后的 scipy.linalg.solve_triangular 速度
#9275: 新功能:在 svds 中添加 LOBPCG 求解器,除 ARPACK 之外
#9403: truncnorm.logpdf 的范围可以扩展
#9429: gaussian_kde 无法与 numpy matrix 配合使用
#9515: ndimage 实现依赖于未定义行为
#9643: arpack 以升序返回奇异值
#9669: DOC: matthew-brett/build-openblas 已停用
#9852: scipy.spatial.ConvexHull 以代码 134 退出, free(): 无效的……
#9902: scipy.stats.truncnorm 二阶矩可能错误
#9943: shgo 中的自定义采样方法不起作用
#9947: DOC: `nan_policy=’propagate` 的错误文档……
#9994: BUG: sparse: reshape 方法允许包含任意值的形状……
#10036: 官方 Nelder mead 教程使用 xtol 而非 xatol,这……
#10078: 目标函数出错时提供更好的错误消息……
#10092: truncnorm.rvs 溢出
#10121: 一处小的拼写错误
#10126: binned_statistic 中不准确的标准差实现
#10161: scipy.special.modstruve 文档错误
#10195: 带有 ‘const’ 外推的样条导数也被外推……
#10206: scipy 1.3 的稀疏矩阵索引
#10236: scipy.optimize 函数类型不匹配时非描述性错误……
#10258: 如果提供初值,LOBPCG 收敛失败
#10262: 距离矩阵缺乏 dtype 检查 / 警告
#10271: BUG: wheels 上的优化失败
#10277: scipy.special.zeta(0) = NAN
#10292: DOC/REL: 发行说明的部分章节嵌套不正确。
#10300: 当……时,scipy.stats.rv_continuous.fit 抛出空的 RuntimeError
#10319: scipy.integrate.solve_ivp 中的事件:如何设置事件……
#10323: 添加更多底层 LAPACK 包装器
#10360: firwin2 无意中修改了输入并可能导致未定义……
#10388: BLD: TestHerd::test_hetrd 在使用 Python-dbg 时核心转储
#10395: 移除关于 zoom 输出形状的警告
#10403: DOC: scipy.signal.resample 忽略了 t 参数
#10421: Yeo-Johnson 幂变换在整数输入数据下失败
#10422: BUG: scipy.fft 不支持多进程
#10427: ENH: convolve 数值应更新
#10444: BUG: scipy.spatial.transform.Rotation.match_vectors 返回不当……
#10488: ENH: 为 scipy.fft 提供 DCTs/DSTs
#10501: BUG: scipy.spatial.HalfspaceIntersection 工作不正确
#10514: BUG: cKDTree GIL 处理不正确
#10535: TST: master 分支 CI 失败
#10588: 当 axes=None 且 shape……时,scipy.fft 和 numpy.fft 不一致
#10628: Scipy python>3.6 Windows wheels 不包含 msvcp*.dll
#10733: DOC/BUG: min_only 结果与文档不符
#10774: min_only=true djisktra 在重复索引时无限循环
#10775: Radau 在给出 NaN 时发生 UnboundLocalError
#10835: io.wavfile.read 为错误的 wav 文件头抛出不必要的错误
#10838: scipy.linalg.lu_factor 文档错误
#10875: DOC: 图形指南(使用 TikZ)
#10880: 在带有 trust-constr 方法的 minimize 中设置 verbose > 2 导致……
#10887: scipy.signal.signaltools._fftconv_faster 估算不正确
#10948: gammainc(0,x) = nan 但应为 1,gammaincc(0,x) = nan 但……
#10952: TestQRdelete_F.test_delete_last_p_col 测试失败
#10968: API: 在 Rotation 中将 normalized=False 改为 normalize=True
#10987: shgo 三角剖分中的内存泄漏
#10991: 运行 openBlas 错误,可能遗漏了步骤
#11033: osx 上的 python 3.8 死锁
#11041: wheel 构建中 TestTf2zpk.test_simple 的测试失败
#11089: scipy.stats 回归,分布不接受 loc 和 scale 参数
#11100: BUG: multiscale_graphcorr 随机状态种子和并行使用
#11121: 调用
scipy.interpolate.splprep增加 RAM 使用。#11125: BUG: 当切片开始索引 > 结束索引时,对 CSR 或 CSC 稀疏矩阵切片发生段错误
#11198: BUG: 稀疏 eigs (arpack) 移位求逆对某些 k 丢掉了最小特征值
1.4.0 的拉取请求 (Pull requests)#
#4591: BUG, TST: scipy.signal.residue 的若干问题
#6629: ENH: sparse: 初始化时规范化
#7076: ENH: 为 scipy.signal.cwt 增加复数小波支持。
#8681: ENH 为 scipy.stats 增加广义逆高斯分布
#9064: BUG/ENH: 在 LinearOperator 中增加了默认 _transpose。修复……
#9215: ENH: 大型多维数据的 Rbf 插值
#9311: ENH: 在 scipy.special 中增加 voigt。
#9642: ENH: integrate: 向量值函数的 quad()
#9679: DOC: 扩展 exponweib 分布的文档字符串
#9684: TST: 增加 ppc64le ci 测试
#9800: WIP : ENH: 重构 _hungarian.py 以提升速度并增加最小化/最大化……
#9847: DOC: 将积分教程更改为使用 solve_ivp 而非 odeint
#9876: ENH: 重采样时尽可能使用 rfft
#9998: BUG: 调用 sparse: reshape 方法时不移除 1s #9994
#10002: ENH: 为微分进化增加约束
#10098: ENH: integrate: 为 solve_ivp 增加 args 参数。
#10099: DOC: 增加 linprog unknown_options 的缺失文档
#10104: BUG: 重写 stats.truncnorm 分布。
#10105: MAINT 提高 scipy.stats 中 rvs_ratio_uniforms 的效率
#10107: TST: dual_annealing 设置种子
#10108: ENH: stats: 改进 kendall_tau 缓存使用
#10110: MAINT: _lib: 修复一处编译警告。
#10114: FIX: 仅在最小化器 (shgo) 支持时打印边界
#10115: TST: 为 lsq_linear 增加一个带有几乎奇异设计矩阵的测试
#10118: MAINT: 修复 scipy.stats 中的 rdist 方法
#10119: MAINT: 改进 scipy.stats 中 randint 的 rvs
#10127: 修复记录数组字段名拼写错误 (spatial-ckdtree-sparse_distance……
#10130: MAINT: ndimage: 修复一些编译器警告。
#10131: DOC: 在 1.4.0 发行说明中注明 solve_ivp args 增强……
#10133: MAINT: 为 scipy.stats 增加 semicircular 的 rvs
#10138: BUG: special: ellip_harm 的无效参数可能导致 Python 崩溃。
#10139: MAINT: spatial: 修复 distance_wrap.c 文件中的一些编译器警告。
#10140: ENH: 在 RuntimeWarning except 子句中增加对 NaN 的处理
#10142: DOC: scipy.special.comb 的返回值
#10143: MAINT: 放宽 linprog 容差
#10152: BUG: 修复 shgo 的自定义采样输入,并增加单元测试
#10154: MAINT: 增加矩量并改进 scipy.stats 中 mielke 的文档
#10158: Issue #6999: 检查读取字节前先读取 zlib 校验和。
#10166: BUG: 在 curve_fit pcov 计算中正确处理广播的 ydata。
#10167: DOC: special: 在 `modstruve` 文档字符串中补上缺失的因子 `i`
#10168: MAINT: stats: 修正一处错误的注释。
#10169: ENH: optimize: 澄清当目标函数返回……时的错误
#10172: DEV: 当 –parallel 标志传递给……时并行运行测试
#10173: ENH: 实现 DOP853 ODE 积分器
#10176: 修正拼写错误
#10182: TST: 修复 stats.pearsonr 的测试问题
#10184: MAINT: stats: 简化 zmap 和 zscore(现在可以使用 keepdims)。
#10191: DOC: 修复 scipy.spatial 模块文档字符串中的格式问题。
#10193: DOC: 更新 optimize.nnls 的文档字符串
#10198: DOC, ENH: special: 使 `hyp2f1` 引用更加具体
#10202: DOC: 将 DST 和 DCT 定义格式化为 Latex 等式
#10207: BUG: 压缩矩阵索引应返回标量
#10210: DOC: 更新 connected_components 中 connection=’weak’ 的文档
#10225: DOC: 澄清 ‘optimize’ 中遗留函数的新接口
#10231: DOC, MAINT: gpg2 更新发布文档 / pavement
#10235: LICENSE: 将许可证文件拆分为标准 BSD 3-clause 和捆绑版本。
#10238: ENH: 使用 pocketfft 增加新的 scipy.fft 模块
#10243: BUG: 修复 ARFF 读取器在处理带引号值时的回归问题。
#10248: DOC: 更新 README 文件
#10255: CI: 升级 OpenBLAS 以匹配 wheels
#10264: TST: 为未展平数组增加 stats.tvar 测试
#10280: MAINT: stats: 为 sqrt(2/PI) 使用常量值。
#10286: 开发文档全面修订
#10290: MAINT: 弃用 SciPy 根命名空间中的 NumPy 函数
#10291: FIX: 检查可用性时避免导入 xdist
#10295: 在 __odrpack.c 中禁用已弃用的 Numpy API
#10296: ENH: 线性指派问题的 C++ 扩展
#10298: ENH: 使 pade 函数支持复数输入
#10301: DOC: 修正 stats.anderson_ksamp 中的临界值显著性水平
#10307: 闵可夫斯基距离类型修正 (issue #10262)
#10309: BUG: 直接传递 jac=None 给 lsoda
#10310: BUG: interpolate: UnivariateSpline.derivative.ext 是 ‘zeros’……
#10312: FIX: 修正注释中的拼写错误
#10314: scipy.spatial 增强请求
#10315: DOC: 将积分教程更新至 solve_ivp
#10318: DOC: 更新 PPoly.solve 的示例
#10333: TST: 为未展平数组增加 stats.tvar 测试
#10334: MAINT: special: 移除弃用的 `hyp2f0`, `hyp1f2`, 和……
#10336: BUG: linalg/interpolative: 修复 interp_decomp 修改输入的问题
#10341: BUG: sparse.linalg/gmres: 弃用回调对语义的影响……
#10344: DOC: 改进数学公式的措辞
#10345: ENH: 为 scipy.linalg.lapack 提供平铺 QR 包装器
#10350: MAINT: linalg: 在 linalg.dft 测试中使用新的 fft 子包……
#10351: BUG: 修复直方图中不稳定的标准差计算
#10353: Bug: interpolate.NearestNDInterpolator (issue #10352)
#10357: DOC: linalg: 在 dft……中引用 scipy.fft.fft (而非 fftpack)
#10359: DOC: scipy.fft 合并后更新路线图
#10361: ENH: 在 scipy.signal 中优先使用 scipy.fft 而非 scipy.fftpack
#10371: DOC: 对 fft 文档进行微调
#10372: DOC: 修正拼写错误
#10377: TST, MAINT: 适配 pytest 5.0
#10378: ENH: _lib: 在 check_random_state 中允许新的 np.random.Generator
#10379: BUG: sparse: 设置可写性以向前兼容 numpy>=1.17
#10381: BUG: 修复 gh-7491,fisk/burr/burr12/f 分布在 x=0 处的 pdf。
#10387: ENH: optimize/bfgs: 不要在初始点求值两次……
#10392: [DOC] 为 _binned_statistic_dd 增加示例
#10396: 移除关于 zoom 输出形状的警告
#10397: ENH: 为 sp.linalg.norm 增加 check_finite
#10399: ENH: 为稀疏矩阵增加 __round__ 方法
#10407: MAINT: 从 install_requires 中移除 pybind11,它仅在构建时……
#10408: TST: 使用 pytest.raises,而非 numpy assert_raises
#10409: CI: 在 Travis 上卸载 nose
#10410: [ENH] ncx2 在 nc=0 时调度至 chi2
#10411: TST: optimize: 浮点数比较应使用 assert_allclose
#10414: DOC: 在快速入门指南的其他部分增加 pybind11
#10417: DOC: special: 不要将非 ufunc 标记为 `[+]`
#10423: FIX: 使用 pybind11::isinstance 检查数组 dtype
#10424: DOC: 为 ttest_ind_from_stats 添加二进制数据的 doctest 示例
#10425: ENH: 向 scipy.fft 添加缺失的埃尔米特变换 (Hermitian transforms)
#10426: MAINT: 修复文档构建中的错误
#10431: 更新 AIX 平台的 numpy 版本
#10433: MAINT: 对 stats 模块进行微调
#10434: BUG: special: 使 `ndtri` 在定义域外返回 NaN
#10435: BUG: 允许 scipy.stats.yeojohnson 输入整数数据
#10438: [DOC] 为 kurtosis 添加示例
#10440: ENH: special: 将 `ellipk` 转换为 ufunc
#10443: MAINT: ndimage: 添加 malloc 失败检查
#10447: BLD: 将测试编译的输出重定向到临时目录
#10451: MAINT: signal: 添加 malloc 失败检查
#10455: BUG: special: 修复 `hyperu` 在负数 `x` 上的值
#10456: DOC: 添加注释说明 lbfgsb.f 中对 dcsrch.f 的调用
#10457: BUG: 允许 ckdtree 接受空数据输入
#10459: BUG:TST: 安全地计算 lwork
#10460: [DOC] 为 entropy 添加示例
#10461: DOC: 快速入门指南更新
#10462: TST: special: 仅针对失败的测试点显示最大 atol/rtol
#10465: BUG: 正确对齐 fft 输入
#10467: ENH: 在 spatial.SphericalVoronoi 中使用更低内存的重复生成器检查
#10470: ENH: 规范化 scipy.fft 中的逆 DCT/DST
#10472: BENCH: 为缓慢的 setup_cache 调整超时时间
#10475: CI: 为 Travis-ci 包含 python 调试信息
#10476: TST: special: 使用 `__tracebackhide__` 以获得更好的错误消息
#10477: ENH: 在 spatial.SphericalVoronoi 中实现更快的区域构建
#10479: BUG: stats: 修复分布 fit 方法的若干问题
#10480: 在 _distn_infrastructure.py 的 fit() 方法中添加 RuntimeError
#10481: BENCH, MAINT: wheel_cache_size 已重命名为 build_cache_size
#10494: ENH: 在 spatial.SphericalVoronoi 中实现更快的外心计算
#10500: Splrep _curfit_cache 全局变量 bug 修复
#10503: BUG: spatial/qhull: 从...获取 HalfspaceIntersection.dual_points
#10506: DOC: interp2d,注明最近邻外推
#10507: MAINT: 移除 fortran fftpack 库,改用 pypocketfft
#10508: TST: 修复循环导入测试中的 bug
#10509: MAINT: 将 _build_utils 设置为子包
#10516: BUG: 在 cKDTree 中使用 nogil 上下文
#10517: ENH: fftconvolve 不应对可广播的轴进行 FFT
#10518: ENH: 加速 fftconvolve
#10520: DOC: 弃用功能和向后...的正确 .rst 格式化
#10523: DOC: 改进 scipy.signal.resample 文档
#10524: ENH: 向 scipy.stats 添加 MGC
#10525: [ENH] 当 nc=0 时,ncx2.ppf 调度到 chi2
#10526: DOC: 澄清拉普拉斯算子规范化
#10528: API: 重命名 scipy.fft DCT/DST 的形状参数为 s
#10531: BUG: 修复 spatial.transform.rotation.match_vectors 中不当的旋转
#10533: [DOC] 为 winsorize 函数添加示例
#10539: MAINT: special: 不要在 `numpy.dual` 中注册 `i0`
#10540: MAINT: 修复 Travis 和 Circle CI
#10542: MAINT: interpolate: 使用 cython_lapack
#10547: 功能请求:向 scipy.spatial.plotutils 添加最远点 Voronoi 图
#10549: [BUG] 修复 trimr 在 inclusive=False 时的 bug
#10552: 添加 scipy.signal.upfirdn 信号扩展模式
#10555: MAINT: special: 将 `c_misc` 移入 Cephes
#10556: [DOC] 为 trima 添加示例
#10562: [DOC] 修复 trimmed 的三引号字符串以便 __doc__ 能够显示...
#10563: 改进 least_squares 在形状不匹配时的错误消息
#10564: ENH: linalg: 记忆化 get_lapack/blas_funcs 以加速
#10566: ENH: 添加最大流问题求解器的实现
#10567: BUG: spatial: 使用 c++11 结构获取 vector 的起始点...
#10568: DOC: special: 对 `zetac` 文档字符串进行微调
#10571: [ENH] Gaussian_kde 可接受矩阵数据集
#10574: ENH: linalg: 通过避免 numpy 构造来加速 _compute_lwork
#10582: 修复拼写错误,同时还原了捆绑库中的拼写错误
#10583: ENH: special: 添加黎曼 Zeta 函数的解析延拓
#10584: MAINT: special: 清理 `special.__all__`
#10586: BUG: 多维 scipy.fft 函数应接受 ‘s’ 参数而不是...
#10587: BUG: integrate/lsoda: 永不中止运行,改为设置错误 istate
#10594: API: 当给定 s 但不给...时,复制 numpy 的 fftn 行为
#10599: DOC: dev: 更新开发文档与 github 拉取请求工作流...
#10603: MAINT: 移除安装脚本
#10604: MAINT: 在多处将 c*np.ones(…) 更改为 np.full(…, c, …)
#10608: 单变量样条应要求 x 严格递增...
#10613: ENH: 为 gaussian_kde.resample 添加种子选项
#10614: ENH: 为 scipy.fft 添加并行计算支持
#10615: MAINT: interpolate: 移除未使用的头文件
#10616: MAINT: 清理 32 位平台的 xfail 标记
#10618: BENCH: 向最小化基准测试添加 ‘trust-constr’
#10621: [MRG] lobpcg 的多项稳定性更新
#10622: MAINT: 向前移植 1.3.1 发行说明
#10624: DOC: stats: 修复 ‘support’ 的拼写
#10627: DOC: stats: 为 alpha 分布添加参考文献
#10629: MAINT: special: 在负数 `zeta` 中更久地避免溢出...
#10630: TST: GH10271,放宽测试断言,修复 #10271
#10631: DOC: nelder-mean 使用 xatol,修复 #10036
#10633: BUG: interpolate: 当两个积分限制相等时,integral(a, b) 应为零
#10635: DOC: special: 完善超几何函数文档
#10636: BUG: special: 当 `hyp1f1` 快速收敛时使用级数形式
#10641: ENH: 允许匹配一般二分图
#10643: ENH: scipy.sparse.linalg.spsolve 支持三角单位对角阵
#10650: ENH: Cython 化 sosfilt
#10654: DOC: 表格条目的垂直对齐
#10655: ENH: 用于 scipy 开发的 Dockerfile
#10660: TST: 清理 scipy.stats 中 rvs 的测试
#10664: 对 binned_statistic_dd() 的非有限输入抛出错误
#10665: DOC: special: 改进 `gamma` 和 `gammasgn` 的文档字符串
#10669: TST: 更新 scipy.fft 实数变换测试
#10670: DOC: 澄清 scipy.signal.butter 的文档和错误消息
#10672: ENH: 在 solve_ivp 中使用事件时返回 solution 属性
#10675: MAINT: special: 为 `iv` 参数添加显式的 NaN 检查
#10679: DOC: special: 添加 `beta` 函数的文档
#10681: TST: sparse.linalg: 修复 arnoldi 测试种子
#10682: DOC: special: 添加 `betainc` 函数的文档
#10684: TST: special: `test_hyperu_around_0` 需要 Mpmath 1.1.0
#10686: FIX: sphinx isattributedescriptor 在 sphinx 中不可用...
#10687: DOC: 由 @andyfaff 添加 Docker 快速入门指南
#10689: DOC: special: 澄清参数/返回值部分的格式...
#10690: DOC: special: 改进不完全伽马函数的文档字符串
#11092: ENH: `spatial.SphericalVoronoi` 支持更高维度的输入
#10694: ENH: ScalarFunction.fun_and_grad
#10698: DOC: special: 添加 `betaincinv` 的文档
#10699: MAINT: 移除 time 打印,lbfgsb 修复 #8417
#10701: TST, MAINT: 将 OpenBLAS 升级到 0.3.7 稳定版
#10702: DOC: 澄清迭代会消耗多次函数调用
#10703: DOC: lbfgsb 的 iprint 文档,关闭 #5482
#10708: TST: gh1758 中建议的测试
#10710: ENH: 为 `stats` 中的 circ 函数添加 nan_policy
#10712: ENH: 为 stats.entropy 添加 axis 参数
#10714: DOC: rv_continuous.expect 文档的格式修复
#10715: DOC: BLD: 更新文档 Makefile 的 python 版本;添加 scipy 版本...
#10717: MAINT: 现代化 doc/Makefile
#10719: 允许设置 minres 的初始向量
#10720: DOC: 消除 `stats.binned_statistic_dd` 文档构建中的随机警告
#10724: DEV: 向 runtests.py 添加 doc 选项
#10728: MAINT: 清除 lobpcg 测试留下的 gramA, gramB 文本文件...
#10732: DOC: 向 Dijkstra 算法文档字符串添加 min_only
#10734: DOC: 详述最短路径中 source 和 target 的区别...
#10735: 为 Python 4 进行修复
#10739: BUG: optimize/slsqp: 处理奇异的 BFGS 更新
#10741: ENH: 为 ?geequ, ?geequb, ?syequb, ?heequb 添加 LAPACK 封装
#10742: DOC: special: 完善 `gammaln` 文档字符串
#10743: ENH: special: 为 `wrightomega` 添加实数调度
#10746: MAINT: 修复注释、文档和测试名称中的拼写错误
#10747: 移除多余的引号
#10750: MAINT: 使 cython 代码更精确
#10751: MAINT: 检查 scipy.linalg.lapack 函数是否已文档化
#10752: MAINT: special: 在 Cephes 中使用 `sf_error`
#10755: DOC: cluster: 为 kmeans2 添加 ‘另请参阅’ 和 ‘示例’
#10763: MAINT: 最小化方法列表
#10768: BUG: 修复 sos2zpk 的极端情况
#10773: 修复 scipy.fftpack.rfft 和 irfft 输入复数时的错误类型
#10776: ENH: `spatial.SphericalVoronoi` 支持测地线输入
#10777: MAINT: minimizer–>custom 应处理各类边界/约束……
#10781: ENH: solve_triangular C 阶改进
#10787: 修复 `exp1` 在支割线上的行为并添加文档字符串
#10789: DOC: special: 为 erfc/erfcx/erfi 添加参数/返回值文档部分
#10790: Travis CI: sudo 已被弃用,Xenial 是默认发行版
#10792: DOC: special: 为 `expi` 添加完整的文档字符串
#10799: DOC: special: 为 `expn` 添加完整的文档字符串
#10800: 文档编辑 (GSoD)
#10802: BUG: 修复 Radau 中的 UnboundLocalError (scipy#10775)
#10804: ENH: 通过 LRU 缓存加速 next_fast_len
#10805: DOC: 修复 signal.place_poles 中未闭合的引号
#10809: ENH: 加速 next_fast_len
#10810: ENH: 为损坏的 Fortran 文件抛出可捕获的异常
#10811: MAINT: optimize: 从 _remove_redundancy_dense 中移除多余变量
#10813: MAINT: special: 从 _kolmogi 和 _smirnovi 中移除未使用的变量
#10815: DOC, API: scipy.stats.reciprocal 即 “对数均匀分布”
#10816: MAINT: special: 移除已弃用的 `bessel_diff_formula`
#10817: DOC: special: 完善 `fresnel` 文档字符串
#10820: 修复 compiler_helper.py 以允许在 Linux 上使用 ICC 编译
#10823: DOC: 为保持写作一致性更新了参考指南文本...
#10825: MAINT: special: 更改 Voigt 函数的一些特性
#10828: MAINT: integrate: 从 init_callback 中移除未使用的变量
#10830: 在 svds 中除了 ARPACK 外添加 LOBPCG 求解器
#10837: WIP: ENH: 为 `spatial.tranform.Rotation` 增加规约函数...
#10843: ENH: 向 stats.zscores 添加可选参数以允许...
#10845: 重置 kruskal 修复
#10847: 移除 scipy.sparse.lil 中多余的 __getitem__
#10848: 更好地处理空(而非缺失)文档字符串
#10849: ENH: 为 LinearOperator 实现 rmatmat
#10850: MAINT : 重构 lil 列表列表格式
#10851: DOC: 向 scipy.spatial 教程添加生成艺术示例
#10852: DOC: linalg: 修复 gh-10838,删除示例中未使用的导入
#10854: DOC: special: 为 `pdtr` 添加完整的文档字符串
#10861: ENH: 在 stats.binned_statistic_dd 中重复使用 binnumbers 的选项
#10863: DOC: scipy.stats 参考指南的部分标准化和验证...
#10865: BUG: special: 修复无穷大 `a` 时不完全伽马函数的问题
#10866: ENH: spatial.transform.Rotation 中平均值的计算
#10867: MAINT: 同时存储 latex 目录
#10869: ENH: 实现重叠相加法 (overlap-add) 卷积
#10870: ENH: 若已读取 wavfile 数据则不抛出 EOF 错误
#10876: ENH: 向 scipy.stats 添加贝塔-二项分布
#10878: MAINT: 更新 R 项目 URL
#10883: MAINT: (ndimage) 更稳健地检查输出是否为 numpy dtype
#10884: DOC: 添加向 scipy.stats 添加新分布的说明
#10885: [BUG] 修复 lobpcg 在 maxiter=None 时导致异常的问题
#10899: ENH: 匹配 R 语言中 hmean 的功能
#10900: MAINT: stats: 使用 keepdims 简化 power_divergence 中的若干行代码
#10901: ENH: sparse/linalg: 支持 pydata/sparse 矩阵
#10907: 检查 `maxiter` 是否为整数
#10912: ENH: 提醒用户当 `weight=…` 时 quad() 会忽略 `points=…`
#10918: CI: 修复 Travis CI py3.8 构建
#10920: MAINT: 更新常数为 codata 2018 数值 (第二次尝试)
#10921: ENH: 加速 scipy.sparse.lil 的 tocsr 转换
#10924: BUG: 禁止在 scipy.optimize.curve_fit 中以关键字参数传递 ‘args’
#10928: DOC: 向 io.wavfile 文档字符串添加示例
#10934: 修复拼写错误
#10935: BUG: 避免浮点数转无符号整数时的未定义行为
#10936: DOC: 为 stats.mstats.variation 添加缺失的示例
#10939: ENH: scipy.sparse.lil: 根据密度加速 tocsr 转换
#10946: BUG: 在 minimize 中使用 trust-constr 方法时设置 verbose > 2...
#10947: DOC: special: 对 `poch` 文档字符串进行小幅改进
#10949: BUG: 修复 erlang_gen._argcheck 的返回类型
#10951: DOC: 修复 Ricker 小波公式
#10954: BUG: special: 修复 0 维输入时 `factorial` 的返回类型
#10955: MAINT: 放宽 assert_unitary 的 atol 值
#10956: WIP: 使 pdtr(int, double) 变为 pdtr(double, double)
#10957: BUG: 确保 long double 测试数据的完整二进制兼容性
#10964: ENH: 使 Slerp 支持标量参数调用
#10972: BUG: 在 zpk2sos 中处理复数增益
#10975: TST: 跳过 ppc64le 平台上的 test_kendalltau
#10978: BUG: boxcox 数据维度和恒定性检查 #5112
#10979: API: 在 Rotation 类中将 dcm 重命名为 (rotation) matrix
#10981: MAINT: 为 igam 和 igamc 添加对 a==0 且 x>0 边界情况的支持
#10986: MAINT: 移除 signaltools.py 中对 numpy 的直接导入
#10988: BUG: signal: 修复问题 #10360
#10989: FIX: 修复 binned_statistic_dd 在 Mac wheel 测试中的失败
#10990: BUG: 修复 shgo 三角剖分中的内存泄漏
#10992: TST: 放宽 upfirdn test_modes 的容差
#10993: TST: 提高优化测试的容差
#10997: MAINT: 重构 residue 和 residuez
#11001: DOC: 更新 Windows 构建教程
#11004: BUG: integrate/quad_vec: 修复 quad_vec 中的若干 bug
#11005: TST: 添加 Python 3.8 Windows CI
#11006: DOC: special: 为 `kl_div` 添加参考文献
#11012: MAINT: 重构 invres 和 invresz
#11015: DOC: special: 为 `rel_entr` 添加参考文献
#11017: DOC: 对 morestats.py 进行 numpydoc 验证
#11018: MAINT: 过滤不相关的警告
#11031: MAINT: 为 pocketfft 实现更新 choose_conv_method
#11034: MAINT: TST: 跳过使用 “spawn” 的多进程测试...
#11036: DOC: 为 doc/README 更新更多实用内容
#11037: DOC: special: 为 `rgamma` 添加完整的文档字符串
#11038: DOC: special: 为多伽马函数添加参考文献
#11042: TST: 修复由于错误的复数排序导致的 tf2zpk 测试失败
#11044: MAINT: choose_conv_method 可为 longcomplex 选择 fftconvolution
#11046: TST: 降低 ppc64le 在使用参考 lapack 时的容差
#11048: DOC: special: 为正交多项式函数添加参考文献
#11049: MAINT: 正确的随机数初始化和可读性修复
#11051: MAINT: pep8 清理
#11054: TST: 提高 dual_annealing SLSQP 测试的精度
#11055: DOC: special: 为 `zeta` 添加参考文献
#11056: API: 弃用 Rotation 中的 normalized 关键字
#11065: DOC: Ubuntu 开发环境快速入门不应修改...
#11066: BUG: 跳过对 numpy 顶级类型的弃用
#11067: DOC: 为保持写作风格一致性更新了文档
#11070: DOC: 对 Ubuntu 开发环境快速入门的修正应...
#11073: DOC: 修复 1.4.0 发行说明
#11081: API: 将 Rotation.match_vectors 替换为 align_vectors
#11083: DOC: 更多 1.4.0 发行说明的修复
#11092: BUG: stats: 修复某些分布的冻结 (freezing) 问题
#11096: BUG: scipy.sparse.csgraph: 修复问题 #10774
#11124: 修复与 _stats.pyx 相关的 Cython 警告
#11126: BUG: interpolate/fitpack: 修复 splprep 中的内存泄漏
#11127: 避免 CSR 和 CSC 矩阵索引中潜在的分段错误 (segfault)
#11152: BUG: 修复 multiscale_graphcorr 中的随机状态 bug
#11166: BUG: 修复空稀疏矩阵切片的形状
#11167: BUG: signal.resample 中多余的 fft
#11181: TST: 修复 aarch64 平台的测试容差
#11182: TST: 提高 test_maxiter_worsening 的容差
#11199: BUG: sparse.linalg: 修复非对称实数平移求逆 ARPACK 特征值选择中的错误