SciPy 1.4.0 发布说明#
SciPy 1.4.0 是6个月辛勤工作的结晶。它包含了许多新功能、大量的错误修复、改进的测试覆盖率和更好的文档。此版本中有一些弃用和API变更,如下文所述。我们鼓励所有用户升级到此版本,因为有许多错误修复和优化。在升级之前,我们建议用户检查自己的代码是否使用了已弃用的SciPy功能(为此,请使用 python -Wd
运行您的代码并检查 DeprecationWarning
)。我们的开发重点现在将转移到1.4.x分支上的错误修复版本,以及在主分支上添加新功能。
此版本需要 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
变换,更快的多维变换,改进的算法时间复杂度,释放全局解释器锁,以及对线程行为的控制。在
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
有一些重要的区别:- 使用 NumPy 的实数变换(rfft
)约定。这意味着返回值是一个复数数组,大小是完整 fft
输出的一半。这与 fftpack
的输出不同,后者返回一个表示复数组件打包在一起的实数数组。- 实数到实数的逆变换(idct
和 idst
)在 norm=None
时与 ifft
一样归一化。这意味着现在所有归一化模式下,恒等式 idct(dct(x)) == x
都是 True
。- 不包括 fftpack
中的卷积或伪微分算子。
此子模块基于 pypocketfft
库,该库由 pocketfft
的作者开发,最近也被 NumPy 采用。pypocketfft
相比 fortran 的 FFTPACK
提供了多项优势:- 支持长双精度(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 中实现。现在我们提供了一个纯 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)
现在对复数值矩阵给出了正确的结果。在此之前,该函数仅对实数值矩阵返回正确的值。
新的布尔关键字参数 check_finite
用于 scipy.linalg.norm
;是否检查输入矩阵仅包含有限数。禁用可能会提高性能,但如果输入包含无穷大或NaN,则可能会导致问题(崩溃、非终止)。
scipy.linalg.solve_triangular
对于C顺序的三角矩阵性能有所提升
已为 ?geequ
、?geequb
、?syequb
和 ?heequb
添加了 LAPACK
包装器
由于通过 _compute_lwork
进行的 LAPACK 例程操作中的内部优化,可能会观察到一些性能改进。这对于小数组的操作尤其如此。
块 QR
包装器现在可以在 scipy.linalg.lapack
中使用
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
现在更优雅地处理包含零的输入。
贝塔-二项分布现在可以在 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
,因此 numpy.dual.i0
将无条件引用 NumPy 版本,无论是否导入了 scipy.special
。
函数 expn
已被修改,在其定义域外(x, n < 0
)返回 nan
而不是 inf
。
scipy.sparse
变化#
如果形状不是二维的,稀疏矩阵重塑现在会引发错误,而不是猜测其含义。现在的行为与 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
现在以数值稳定的方式计算标准差统计量。
scipy.stats.binned_statistic_dd
现在如果输入数据包含 np.nan
或 np.inf
,则会抛出错误。同样地,在 scipy.stats
中,现在所有连续分布的 .fit()
方法如果输入数据包含 np.nan
或 np.inf
的任何实例,也会抛出错误。
1.4.0 版本关闭的问题#
#1255: Scipy.sparse.linalg gmres 的 maxiter 损坏,此外还有…
#1301: 整合来自插值和积分包的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: tf 滤波器在 residuez 中去除前导和尾随零
#4669: 重写 sosfilt 以使输入仅循环一次?
#5040: BUG: (c)KDTrees 的空数据处理
#5112: boxcox 变换的边缘情况可以更加细致处理
#5441: scipy.stats.ncx2 在 nc=0 时失败
#5502: 在 optimize.curve_fit 中未处理 args 关键字
#6484: Qhull 段错误
#6900: 具有无限权重的线性求和分配
#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: 匹配 R 的 hmean 功能
#8417: optimimze.minimize(method=’L-BFGS-B’, options={‘disp’: True})…
#8535: UnivariateSpline 中的严格递增要求
#8815: [BUG] GMRES: 迭代次数仅在回调…时增加
#9207: scipy.linalg.solve_triangular 在 scipy.linalg.lu_factor 之后的速度
#9275: 新功能:在 svds 中添加 LOBPCG 求解器,除了 ARPACK
#9403: truncnorm.logpdf 的范围可以扩展
#9429: gaussian_kde 不适用于 numpy 矩阵
#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: 稀疏矩阵: reshape 方法允许形状包含任意…
#10036: 官方Nelder Mead教程使用了xtol而不是xatol,这…
#10078: 当目标函数…时,能否获得更好的错误信息
#10092: truncnorm.rvs 中的溢出
#10121: 一个小拼写错误
#10126: binned_statistic 中的 std 实现不准确
#10161: scipy.special.modstruve 文档中的错误
#10195: 带有 ‘const’ 外推的样条的导数也被外推…
#10206: 使用 scipy 1.3 进行稀疏矩阵索引
#10236: scipy.optimize 函数类型不匹配时出现非描述性错误…
#10258: 如果提供了猜测,LOBPCG 收敛失败
#10262: 距离矩阵缺少 dtype 检查 / 警告
#10271: BUG: 在轮子上优化失败
#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: 移除关于缩放输出形状的警告
#10403: DOC: scipy.signal.resample 忽略 t 参数
#10421: Yeo-Johnson 幂变换在输入数据为整数时失败
#10422: BUG: scipy.fft 不支持多进程
#10427: ENH: 卷积数字应更新
#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: 主分支 CI 失败
#10588: 当 axes=None 和 shape… 时,scipy.fft 和 numpy.fft 的不一致性
#10628: Scipy python>3.6 Windows 轮子未包含 msvcp*.dll
#10733: 文档/错误: min_only 结果与文档不符
#10774: min_only=true 时 Djikstra 算法在重复索引情况下无限循环
#10775: 在给定NaN时,Radau中出现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: 将 normalized=False 更改为 normalize=True 在 Rotation
#10987: shgo 三角剖分中的内存泄漏
#10991: 运行 openBlas 时出错,可能缺少一个步骤
#11033: 在 Python 3.8 的 OSX 上出现死锁
#11041: 在TestTf2zpk.test_simple的轮子构建中测试失败
#11089: scipy.stats 中的回归问题,分布不再接受 loc 和 scale 参数
#11100: BUG: 多尺度图相关随机状态种子和并行使用
#11121: 调用
scipy.interpolate.splprep
会增加 RAM 使用量。#11125: BUG: 当使用切片起始索引 > 终止索引对CSR或CSC稀疏矩阵进行切片时,会发生段错误
#11198: BUG: 稀疏 eigs (arpack) 移位-反转在某些 k 值下会丢失最小的特征值
1.4.0 的拉取请求#
#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 以提高速度并添加了 minimize/maximize…
#9847: DOC: 将积分教程改为使用 solve_ivp 而不是 odeint
#9876: ENH: 在可能的情况下使用 rfft 进行重采样
#9998: BUG: 在调用稀疏矩阵的 reshape 方法时不要移除 1 #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: 双退火设置种子
#10108: ENH: stats: 改进 kendall_tau 缓存使用
#10110: MAINT: _lib: 修复一个构建警告。
#10114: 修复:仅在最小化器(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参数的增强功能…
#10133: MAINT: 在 scipy.stats 中添加半圆分布的 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 的 tol
#10152: BUG: 修复 shgo 的自定义采样输入,添加单元测试
#10154: MAINT: 添加矩并改进 scipy.stats 中 mielke 的文档
#10158: 问题 #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: 更新发布文档 / pavement 的 gpg2
#10235: LICENSE: 将许可证文件拆分为标准的BSD 3条款和捆绑的。
#10238: ENH: 使用 pocketfft 添加新的 scipy.fft 模块
#10243: BUG: 修复 ARFF 读取器在引用值中的回归问题。
#10248: DOC: 更新 README 文件
#10255: CI: 将 OpenBLAS 升级以匹配轮子
#10264: TST: 为 stats.tvar 添加未展平数组的测试
#10280: MAINT: stats: 使用常数值表示 sqrt(2/PI)。
#10286: 开发文档大修
#10290: MAINT: 在 SciPy 根目录中弃用 NumPy 函数
#10291: 修复: 在检查可用性时避免导入 xdist
#10295: 在 __odrpack.c 中禁用已弃用的 Numpy API
#10296: ENH: 线性分配问题的C++扩展
#10298: ENH: 使 pade 函数支持复数输入
#10301: DOC: 修正 stats.anderson_ksamp 中的临界值显著性水平
#10307: 闵可夫斯基距离类型修复 (问题 #10262)
#10309: BUG: 直接传递 jac=None 给 lsoda
#10310: BUG: 插值: 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 添加了 Tiled QR 包装器
#10350: MAINT: linalg: 在 linalg.dft 测试中使用新的 fft 子包…
#10351: BUG: 修复直方图中不稳定的标准差计算
#10353: 错误: interpolate.NearestNDInterpolator (问题 #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: 稀疏: 设置写入能力以与 numpy>=1.17 向前兼容
#10381: BUG: 修复 gh-7491,fisk/burr/burr12/f 分布在 x=0 处的 pdf。
#10387: ENH: optimize/bfgs: 在初始点不要进行两次评估…
#10392: [DOC] 为 _binned_statistic_dd 添加一个示例
#10396: 移除关于缩放输出形状的警告
#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] 当 nc=0 时,ncx2 分派到 chi2
#10411: TST: optimize: 测试应使用 assert_allclose 进行浮点比较
#10414: DOC: 在快速入门指南的其他部分添加 pybind11
#10417: DOC: special: 不要用 `[+]` 标记非ufuncs
#10423: 修复: 使用 pybind11::isinstace 检查数组 dtypes
#10424: DOC: 为 ttest_ind_from_stats 添加二进制数据的 doctest 示例
#10425: ENH: 添加缺失的 Hermitian 变换到 scipy.fft
#10426: MAINT: 修复文档构建错误
#10431: 更新 AIX 的 numpy 版本
#10433: MAINT: 对stats的小修复
#10434: BUG: special: 使 `ndtri` 在定义域外返回 NaN
#10435: BUG: 允许在 scipy.stats.yeojohnson 中使用整数输入数据
#10438: [DOC] 为峰度添加示例
#10440: ENH: special: 将 `ellipk` 设为 ufunc
#10443: MAINT: ndimage: malloc 失败检查
#10447: BLD: 将测试编译的输出重定向到一个临时目录
#10451: MAINT: signal: malloc 失败检查
#10455: 错误修复: 特殊函数: 修复`hyperu`在负`x`值时的结果
#10456: DOC: 添加了注释以澄清在 lbfgsb.f 中对 dcsrch.f 的调用
#10457: BUG: 允许 ckdtree 接受空数据输入
#10459: BUG:TST: 安全地计算 lwork
#10460: [DOC] 添加熵的示例
#10461: DOC: 快速入门指南更新
#10462: TST: 特殊: 仅显示测试点失败的 max 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 全局变量错误修复
#10503: BUG: spatial/qhull: 从…获取 HalfspaceIntersection.dual_points
#10506: DOC: interp2d, 注意最近邻外推
#10507: MAINT: 移除 fortran fftpack 库,改为使用 pypocketfft
#10508: TST: 修复循环导入测试中的一个错误。
#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: 添加 MGC 到 scipy.stats
#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
#10542: MAINT: interpolate: 使用 cython_lapack
#10547: 功能请求。将最远点Voronoi图添加到scipy.spatial.plotutils。
#10549: [BUG] 修复当 inclusive=False 时 trimr 中的错误
#10552: 添加 scipy.signal.upfirdn 信号扩展模式
#10555: MAINT: special: 将 `c_misc` 移入 Cephes
#10556: [DOC] 为 trima 添加示例
#10562: [DOC] 修复了修剪后的三重字符串,以便 __doc__ 可以显示…
#10563: 改进 least_squares 错误信息以处理形状不匹配的情况
#10564: ENH: linalg: 缓存 get_lapack/blas_funcs 以加速
#10566: ENH: 添加最大流问题求解器的实现
#10567: BUG: 空间: 使用 c++11 构造获取向量的起始位置…
#10568: DOC: special: 对 `zetac` 文档字符串的小调整
#10571: [ENH] Gaussian_kde 可以接受矩阵数据集
#10574: ENH: linalg: 通过避免使用 numpy 结构来加速 _compute_lwork
#10582: 修复了捆绑库中因拼写错误而恢复的拼写错误
#10583: ENH: special: 添加黎曼zeta函数的解析延拓
#10584: 维护: 特殊: 清理 `special.__all__`
#10586: BUG: 多维 scipy.fft 函数应接受 ‘s’ 而不是…
#10587: BUG: 积分/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 添加 seed 选项
#10614: ENH: 为 scipy.fft 添加并行计算
#10615: MAINT: 插值: 移除未使用的头文件
#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: 插值: 当两个极限…时,integral(a, b) 应为零
#10635: DOC: special: 完成超几何函数文档
#10636: BUG: special: 当 `hyp1f1` 收敛迅速时,使用级数
#10641: ENH: 允许匹配一般二分图
#10643: ENH: scipy.sparse.linalg.spsolve 三角单位对角线
#10650: ENH: 使用Cython优化sosfilt
#10654: 文档: 表格条目的垂直对齐
#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 时,当使用事件时返回解属性
#10675: MAINT: special: 为 `iv` 参数添加显式的 NaN 检查
#10679: DOC: special: 为 `beta` 函数添加文档
#10681: TST: sparse.linalg: 修复 arnoldi 测试种子
#10682: DOC: special: 为 `betainc` 函数添加文档
#10684: TST: special: 需要 Mpmath 1.1.0 以运行 `test_hyperu_around_0`
#10686: 修复:sphinx 的 isattributedescriptor 在 sphinx… 中不可用
#10687: DOC: 由 @andyfaff 添加了 Docker 快速启动指南
#10689: DOC: special: 澄清…的参数/返回部分的格式
#10690: DOC: special: 改进了不完全伽马函数的文档字符串
#10692: 增强:在 `spatial.SphericalVoronoi` 中支持更高维输入
#10694: ENH: ScalarFunction.fun_and_grad
#10698: DOC: special: 为 `betaincinv` 添加文档
#10699: MAINT: 移除时间打印 lbfgsb 修复 #8417
#10701: TST, MAINT: 将 OpenBLAS 升级到 0.3.7 稳定版
#10702: DOC: 澄清迭代会消耗多次函数调用
#10703: DOC: iprint doc lbfgsb 关闭 #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 中添加文档选项
#10728: MAINT: 移除 lobpcg 测试留下的 gramA, gramB 文本文件…
#10732: DOC: 在Dijkstra算法的docstring中添加min_only
#10734: DOC: 在最短…中明确源和目标之间的区别
#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: 增强:在 `spatial.SphericalVoronoi` 中处理测地线输入
#10777: MAINT: 最小化器–>自定义应处理各种边界/约束……
#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: 优化: 从 _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 中添加 LOBPCG 求解器,除了 ARPACK
#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: 实现重叠-相加卷积
#10870: ENH: 如果读取的 wavfile 数据没有引发 EOF 错误
#10876: ENH: 在 scipy.stats 中添加 beta-binomial 分布
#10878: MAINT: 更新 R 项目 URL
#10883: MAINT: (ndimage) 更健壮的检查输出是否为 numpy 数据类型
#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: 在使用 trust-constr 方法的 minimize 中设置 verbose > 2 …
#10947: DOC: special: 对 `poch` 文档字符串的小改进
#10949: BUG: 修复 erlang_gen._argcheck 的返回类型
#10951: DOC: 修复了Ricker小波公式
#10954: BUG: special: 修复 `factorial` 对 0-d 输入的返回类型
#10955: MAINT: 放宽 assert_unitary 的 atol 值
#10956: WIP: 使 pdtr(int, double) 变为 pdtr(double, double)
#10957: BUG: 确保长双精度测试数据的全二进制兼容性
#10964: ENH: 使 Slerp 可调用标量参数
#10972: BUG: 处理zpk2sos中的复数增益
#10975: TST: 跳过 test_kendalltau ppc64le
#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: 修复 binned_statistic_dd Mac 轮测试失败
#10990: BUG: 修复shgo三角剖分中的内存泄漏
#10992: TST: 放宽upfirdn test_modes中的容差
#10993: TST: 在优化测试中提高容差
#10997: MAINT: 重构 residue 和 residuez
#11001: DOC: 更新了Windows构建教程
#11004: BUG: integrate/quad_vec: 修复了 quad_vec 中的几个错误
#11005: TST: 添加 Python 3.8 Win CI
#11006: DOC: special: 为 `kl_div` 添加参考文献
#11012: MAINT: 重构 invres 和 invresz
#11015: DOC: special: 为 `rel_entr` 添加参考文献
#11017: DOC: 对 morestats.py 进行 numpydoc 验证
#11018: MAINT: 过滤不相关的警告
#11031: MAINT: 更新 choose_conv_method 以适应 pocketfft 实现
#11034: MAINT: TST: 跳过多进程使用“spawn”的测试…
#11036: DOC: 更新 doc/README 文件,添加更多有用内容。
#11037: DOC: special: 为 `rgamma` 添加完整的文档字符串
#11038: DOC: special: 为 polygamma 函数添加参考
#11042: TST: 修复由于复数排序错误导致的tf2zpk测试失败。
#11044: MAINT: choose_conv_method 可以选择 fftconvolution 用于 longcomplex
#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: 用 align_vectors 替换 Rotation.match_vectors
#11083: DOC: 更多 1.4.0 发布说明修复
#11092: BUG: stats: 修复某些分布的冻结问题
#11096: BUG: scipy.sparse.csgraph: 修复了 #10774 问题
#11124: 修复与 _stats.pyx 相关的 Cython 警告
#11126: BUG: interpolate/fitpack: 修复 splprep 中的内存泄漏
#11127: 避免CSR和CSC矩阵索引中的潜在段错误
#11152: BUG: 修复多尺度图相关随机状态错误
#11166: BUG: 空稀疏切片形状
#11167: BUG: 信号重采样中的冗余 fft
#11181: TST: 修复 aarch64 测试的容差
#11182: TST: 提高 test_maxiter_worsening 的容差
#11199: BUG: sparse.linalg: 非对称实数移位-反转 ARPACK 特征值选择中的错误