SciPy 1.4.0 发行说明#
SciPy 1.4.0 是 6 个月辛勤工作的结晶。它包含许多新功能、大量错误修复、改进的测试覆盖率和更好的文档。此版本中存在许多弃用和 API 更改,如下所述。鼓励所有用户升级到此版本,因为其中包含大量错误修复和优化。在升级之前,我们建议用户检查他们自己的代码是否使用了已弃用的 SciPy 功能(为此,请使用 python -Wd
运行代码并检查 DeprecationWarning
s)。我们的开发重点现在将转移到 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
转换、更快的 多维转换、改进的算法时间复杂度、释放全局解释器锁以及控制线程行为在
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
的输出不同,后者返回一个实数数组,表示打包在一起的复数分量。- 实数到实数的逆变换(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
。这是一种高阶显式 Runge-Kutta 方法,最初在 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)
现在可以为复数值矩阵给出正确的结果。在此之前,该函数仅对实数值矩阵返回正确的值。
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
现在支持伴随矩阵-矩阵乘法的 rmatmat
操作,以及 rmatvec
操作。
多项稳定性更新使得 scipy.sparse.linalg.lobpcg
中用于对称和 Hermitian 特征值问题的 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
)。
已添加 Riemann zeta 函数的解析延拓。(Riemann 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-binomial 分布现在可以在 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 1.5.0 中将删除调用 scipy.fft(...)
的能力。
在 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
的更改#
稀疏矩阵重塑如果形状不是二维的,现在会引发错误,而不是猜测其含义。现在的行为与 SciPy 1.1.0 之前的行为相同。
当超出范围索引时,CSR
和 CSC
稀疏矩阵类现在应返回相同类型的空矩阵。以前,对于某些版本的 SciPy,这会引发 IndexError
。此更改主要是为了与 ndarray
和 numpy.matrix
语义保持更大的一致性。
scipy.signal
的更改#
对于长度为 1 的信号输入,scipy.signal.resample
的行为已修复为输出常量 (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:tf 滤波器在 residuez 中尾随和前导零
#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: 匹配 R 的 hmean 功能
#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 矩阵
#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 中不准确的 std 实现
#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: 删除有关缩放输出形状的警告
#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 的 DCT/DST
#10501: BUG:scipy.spatial.HalfspaceIntersection 工作不正确
#10514: BUG: cKDTree GIL 处理不正确
#10535: TST:master 分支 CI 失败
#10588: 当 axes=None 且形状为…时,scipy.fft 和 numpy.fft 不一致
#10628: Scipy python>3.6 Windows wheels 不附带 msvcp*.dll
#10733: DOC/BUG: min_only 结果与文档不符
#10774: min_only=true djisktra 在重复索引下无限循环
#10775: 当给定 NaN 时 Radau 中的 UnboundLocalError
#10835: io.wavfile.read 对于错误的 wav 头部不必要地引发错误
#10838: scipy.linalg.lu_factor 的文档错误
#10875: 文档:图形指南 (使用 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: python 3.8 在 osx 上出现死锁
#11041: TestTf2zpk.test_simple 的 wheel 构建中测试失败
#11089: scipy.stats 中的回归,其中分布不接受 loc 和 scale 参数
#11100: BUG:multiscale_graphcorr 随机状态种子和并行使用
#11121: 调用
scipy.interpolate.splprep
会增加 RAM 使用量。#11125: BUG:当使用切片起始索引 > 停止索引对 CSR 或 CSC 稀疏矩阵进行切片时发生段错误
#11198: BUG:稀疏特征值 (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:将默认的 _transpose 添加到 LinearOperator 中。修复了…
#9215: ENH:大规模多维数据的 Rbf 插值
#9311: ENH:在 scipy.special 中添加了 voigt。
#9642: ENH: integrate: 用于向量值函数的 quad()
#9679: 文档:扩展 exponweib 分布的文档字符串
#9684: TST:添加 ppc64le ci 测试
#9800: WIP : ENH: 为了提高速度重构了 _hungarian.py,并添加了最小化/最大化…
#9847: 文档:更改 integrate 教程以使用 solve_ivp 而不是 odeint
#9876: ENH: 在重采样时尽可能使用 rfft
#9998: BUG: 调用 sparse 时不要删除 1:reshape 方法 #9994
#10002: ENH: 为差分进化添加约束
#10098: ENH: integrate: 将 args 参数添加到 solve_ivp。
#10099: 文档:为 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:仅在 minimizer (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: 文档:在 1.4.0 版本说明 solve_ivp args 的增强功能…
#10133: MAINT: 为 scipy.stats 中的半圆形添加 rvs
#10138: BUG:special: ellip_harm 的无效参数会导致 Python 崩溃。
#10139: MAINT: spatial: 修复文件 distance_wrap.c 中的一些编译器警告。
#10140: ENH: 在 RuntimeWarning except 子句中添加 NaN 的处理
#10142: 文档: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: 文档:special: 将缺失的 `i` 因子添加到 `modstruve` 文档字符串中
#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: 文档:修复 scipy.spatial 模块文档字符串中的格式问题。
#10193: 文档:更新了 optimize.nnls 的文档字符串
#10198: 文档,ENH:special: 使 `hyp2f1` 的引用更具体
#10202: 文档:将 DST 和 DCT 定义格式化为 latex 方程
#10207: BUG:压缩矩阵索引应该返回一个标量
#10210: 文档:更新 connected_components 中 connection='weak' 的文档
#10225: 文档:阐明 ‘optimize’ 中传统函数的新接口
#10231: 文档,MAINT:gpg2 更新发布文档/pavement
#10235: 许可:将许可文件拆分为标准的 BSD 3 条款和捆绑条款。
#10238: ENH:使用 pocketfft 添加新的 scipy.fft 模块
#10243: BUG:修复 ARFF 读取器在带引号值方面的回归。
#10248: 文档:更新 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: 文档:修复 stats.anderson_ksamp 中的临界值显著性水平
#10307: Minkowski 距离类型修复 (问题 #10262)
#10309: BUG: 将 jac=None 直接传递给 lsoda
#10310: BUG:interpolate: UnivariateSpline.derivative.ext 是 'zeros'…
#10312: FIX:修复注释中的拼写错误
#10314: scipy.spatial 增强请求
#10315: 文档:将积分教程更新为 solve_ivp
#10318: 文档:更新 PPoly.solve 的示例
#10333: TST: 为带有未展平数组的 stats.tvar 添加测试
#10334: MAINT:special:删除已弃用的 `hyp2f0`、`hyp1f2` 和…
#10336: 错误修复:linalg/interpolative:修复 interp_decomp 修改输入的问题
#10341: 错误修复:sparse.linalg/gmres:弃用回调函数对语义的影响……
#10344: 文档:改进数学公式的措辞
#10345: 增强:scipy.linalg.lapack 的分块 QR 包装器
#10350: 维护:linalg:在 linalg.dft 测试中使用新的 fft 子包……
#10351: 错误修复:修复直方图中不稳定的标准差计算
#10353: 错误修复:interpolate.NearestNDInterpolator (问题 #10352)
#10357: 文档:linalg:在 dft 中引用 scipy.fft.fft (而不是 fftpack)……
#10359: 文档:更新路线图,因为 scipy.fft 已合并
#10361: 增强:在 scipy.signal 中优先使用 scipy.fft 而不是 scipy.fftpack
#10371: 文档:对 fft 文档进行调整
#10372: 文档:修复拼写错误
#10377: 测试,维护:针对 pytest 5.0 的调整
#10378: 增强:_lib:允许在 check_random_state 中使用新的 np.random.Generator
#10379: 错误修复:sparse:设置可写性,以向前兼容 numpy>=1.17
#10381: 错误修复:修复 gh-7491,fisk/burr/burr12/f 分布在 x=0 处的 pdf。
#10387: 增强:optimize/bfgs:不要在初始点评估两次……
#10392: [文档] 为 _binned_statistic_dd 添加一个示例
#10396: 移除关于 zoom 输出形状的警告
#10397: 增强:向 sp.linalg.norm 添加 check_finite
#10399: 增强:向稀疏矩阵添加 __round__ 方法
#10407: 维护:从 install_requires 中删除 pybind11,它仅在构建时需要……
#10408: 测试:使用 pytest.raises,而不是 numpy assert_raises
#10409: CI:在 Travis 上卸载 nose
#10410: [增强] 当 nc=0 时,ncx2 分派到 chi2
#10411: 测试:optimize:测试应该使用 assert_allclose 进行浮点数比较
#10414: 文档:将 pybind11 添加到快速入门指南的另一部分
#10417: 文档:special:不要用 `[+]` 标记非 ufunc
#10423: 修复:使用 pybind11::isinstace 检查数组数据类型
#10424: 文档:为 ttest_ind_from_stats 添加二进制数据的 doctest 示例
#10425: 增强:向 scipy.fft 添加缺失的 Hermitian 变换
#10426: 维护:修复文档构建错误
#10431: 更新 AIX 的 numpy 版本
#10433: 维护:对 stats 进行小的修复
#10434: 错误修复:special:使 `ndtri` 在定义域外返回 NaN
#10435: 错误修复:允许在 scipy.stats.yeojohnson 中使用整数输入数据
#10438: [文档] 为 kurtosis 添加示例
#10440: 增强:special:使 `ellipk` 成为 ufunc
#10443: 维护:ndimage:malloc 失败检查
#10447: BLD:将测试编译的输出重定向到临时目录
#10451: 维护:signal:malloc 失败检查
#10455: 错误修复:special:修复 `hyperu` 在负 `x` 值时的值
#10456: 文档:添加注释,阐明 lbfgsb.f 中 dcsrch.f 的调用
#10457: 错误修复:允许 ckdtree 接受空数据输入
#10459: 错误修复:测试:安全地计算 lwork
#10460: [文档] 为 entropy 添加示例
#10461: 文档:快速入门指南更新
#10462: 测试:special:仅显示失败测试点的最大 atol/rtol
#10465: 错误修复:正确对齐 fft 输入
#10467: 增强:在 spatial.SphericalVoronoi 中降低内存消耗的重复生成器检查
#10470: 增强:在 scipy.fft 中规范化逆 DCT/DST
#10472: 基准测试:调整 setup_cache 慢的超时时间
#10475: CI:为 Travis-ci 包括 python 调试
#10476: 测试:special:使用 `__tracebackhide__` 获取更好的错误消息
#10477: 增强:spatial.SphericalVoronoi 中更快的区域构建
#10479: 错误修复:stats:修复分布的 fit 方法的一些问题。
#10480: 在 _distn_infrastructure.py 的 fit() 方法中添加 RuntimeError
#10481: 基准测试,维护:wheel_cache_size 已重命名为 build_cache_size
#10494: 增强:spatial.SphericalVoronoi 中更快的 circumcenter 计算
#10500: Splrep _curfit_cache 全局变量错误修复
#10503: 错误修复:spatial/qhull:从……获取 HalfspaceIntersection.dual_points
#10506: 文档:interp2d,注意最近邻外推
#10507: 维护:移除 fortran fftpack 库,转而使用 pypocketfft
#10508: 测试:修复循环导入测试中的错误。
#10509: 维护:将 _build_utils 设置为子包
#10516: 错误修复:在 cKDTree 中使用 nogil 上下文
#10517: 增强:fftconvolve 不应 FFT 可广播轴
#10518: 增强:加速 fftconvolve
#10520: 文档:已弃用特性和向后兼容的正确 .rst 格式……
#10523: 文档:改进 scipy.signal.resample 文档
#10524: 增强:向 scipy.stats 添加 MGC
#10525: [增强] 当 nc=0 时,ncx2.ppf 分派到 chi2
#10526: 文档:阐明拉普拉斯归一化
#10528: API:将 scipy.fft DCT/DST 形状参数重命名为 s
#10531: 错误修复:修复 spatial.transform.rotation.match_vectors 中不正确的旋转
#10533: [文档] 为 winsorize 函数添加示例
#10539: 维护:special:不要向 `numpy.dual` 注册 `i0`
#10540: 维护:修复 Travis 和 Circle
#10542: 维护:interpolate:使用 cython_lapack
#10547: 功能请求。将最远点 Voronoi 图添加到 scipy.spatial.plotutils。
#10549: [错误修复] 修复 inclusive=False 时 trimr 中的错误
#10552: 添加 scipy.signal.upfirdn 信号扩展模式
#10555: 维护:special:将 `c_misc` 移动到 Cephes
#10556: [文档] 为 trima 添加示例
#10562: [文档] 修复已修剪的三重字符串,以便 __doc__ 可以显示……
#10563: 改进不匹配形状的 least_squares 错误消息
#10564: 增强:linalg:memoize get_lapack/blas_funcs 以加快速度
#10566: 增强:添加最大流问题的求解器实现
#10567: 错误修复:spatial:使用 c++11 构造来获取向量的开头……
#10568: 文档:special:对 `zetac` 文档字符串进行小调整
#10571: [增强] Gaussian_kde 可以接受矩阵数据集
#10574: 增强:linalg:通过避免 numpy 构造来加速 _compute_lwork
#10582: 修复捆绑库中还原的拼写错误
#10583: 增强:special:添加黎曼 zeta 的解析延拓
#10584: 维护:special:清理 `special.__all__`
#10586: 错误修复:多维 scipy.fft 函数应该接受 ‘s’ 而不是……
#10587: 错误修复:integrate/lsoda:永远不要中止运行,而是设置错误 istate
#10594: API:当给出 s 但不给出……时,复制 numpy 的 fftn 行为
#10599: 文档:dev:更新文档与 github pull request 工作流程……
#10603: 维护:移除安装程序脚本
#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: Cythonize 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 中使用事件时返回解决方案属性
#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: 阐明 `special` 中参数/返回部分格式的描述…
#10690: DOC: special: 改进不完全伽玛函数的文档字符串
#10692: ENH: `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 文档 lbfgsb 关闭 #5482
#10708: TST: 测试在 gh1758 中建议
#10710: ENH: 为 `stats` 中的循环函数添加 nan_policy
#10712: ENH: 为 stats.entropy 添加轴参数
#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 算法的文档字符串添加 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: 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 中添加 LOBPCG 求解器,以及 ARPACK
#10837: WIP: ENH: `spatial.tranform.Rotation` 的归约函数…
#10843: 增强:为 stats.zscores 添加可选参数,以允许…
#10845: Rebase kruskal 修复
#10847: 从 scipy.sparse.lil 中移除冗余的 __getitem__
#10848: 更好地处理空的(不是缺失的)文档字符串
#10849: 增强:为 LinearOperator 实现 rmatmat
#10850: 维护:重构 lil 列表
#10851: 文档:向 scipy.spatial 教程添加生成艺术示例。
#10852: 文档:linalg:修复了 gh-10838 中示例中未使用的导入被删除的问题
#10854: 文档:special:为 `pdtr` 添加完整的文档字符串
#10861: 增强:在 stats.binned_statistic_dd 中重用 binnumbers 的选项
#10863: 文档:部分标准化和验证 scipy.stats 参考…
#10865: 错误:special:修复了无限 `a` 的不完整 gamma 函数
#10866: 增强:在 spatial.transform.Rotation 中计算均值
#10867: 维护:同时存储 latex 目录
#10869: 增强:实现重叠相加卷积
#10870: 增强:如果读取了 wavfile 数据,则不要引发 EOF 错误
#10876: 增强:向 scipy.stats 添加 beta-binomial 分布
#10878: 维护:更新 R 项目 URL
#10883: 维护:(ndimage) 更健壮地检查输出是否为 numpy dtype
#10884: 文档:添加了关于向 scipy.stats 添加新分布的说明。
#10885: [错误] 修复了 maxiter=None 导致异常的 lobpcg
#10899: 增强:为 hmean 匹配 R 功能
#10900: 维护:stats:使用 keepdims 来简化 power_divergence 中的几行代码。
#10901: 增强:sparse/linalg:支持 pydata/sparse 矩阵
#10907: 检查 `maxiter` 是否为整数
#10912: 增强:警告用户 quad() 在 `weight=…` 时忽略 `points=…`…
#10918: CI:修复 Travis CI py3.8 构建
#10920: 维护:将常量更新为 codata 2018 值(第二次尝试)
#10921: 增强:scipy.sparse.lil:加速 tocsr
#10924: 错误:禁止在 scipy.optimize.curve_fit 中将“args”作为 kwarg 传递
#10928: 文档:向 io.wavfile 文档字符串添加示例
#10934: 拼写错误修复
#10935: 错误:避免在浮点数到无符号数的转换时出现未定义的行为
#10936: 文档:为 stats.mstats.variation 添加了缺失的示例
#10939: 增强:scipy.sparse.lil:根据密度加速 tocsr
#10946: 错误:在使用 trust-constr 方法时将 verbose 设置为 > 2…
#10947: 文档:special:对 `poch` 文档字符串的小改进
#10949: 错误:修复 erlang_gen._argcheck 的返回类型
#10951: 文档:修复了 Ricker 小波公式
#10954: 错误:special:修复了 0-d 输入的 `factorial` 返回类型
#10955: 维护:放宽 assert_unitary atol 值
#10956: 进行中:使 pdtr(int, double) 为 pdtr(double, double)
#10957: 错误:确保长双精度测试数据的完全二进制兼容性
#10964: 增强:使 Slerp 可使用标量参数调用
#10972: 错误:处理 zpk2sos 中的复数增益
#10975: 测试:跳过 test_kendalltau ppc64le
#10978: 错误:boxcox 数据维度和常量检查 #5112
#10979: API:在 Rotation 类中将 dcm 重命名为(旋转)矩阵
#10981: 维护:为 igam 和 igamc 添加对 a==0 和 x>0 边界情况的支持
#10986: 维护:移除 signaltools.py 中对 numpy 的直接导入
#10988: 错误:signal:修复了问题 #10360
#10989: 修复 binned_statistic_dd Mac wheel 测试失败
#10990: 错误:修复 shgo 三角剖分中的内存泄漏
#10992: 测试:放宽 upfirdn test_modes 中的容差
#10993: 测试:提高优化测试中的容差
#10997: 维护:重做 residue 和 residuez
#11001: 文档:更新了 Windows 构建教程
#11004: 错误:integrate/quad_vec:修复了 quad_vec 中的几个错误
#11005: 测试:添加 Python 3.8 Win CI
#11006: 文档:special:为 `kl_div` 添加参考
#11012: 维护:重做 invres 和 invresz
#11015: 文档:special:为 `rel_entr` 添加参考
#11017: 文档:numpydoc 验证 morestats.py
#11018: 维护:过滤不相关的警告
#11031: 维护:为 pocketfft 实现更新 choose_conv_method
#11034: 维护:测试:跳过使用“spawn”的多进程测试…
#11036: 文档:更新 doc/README,其中包含更多有用的内容。
#11037: 文档:special:为 `rgamma` 添加完整的文档字符串
#11038: 文档:special:为 polygamma 函数添加参考
#11042: 测试:修复了由于不正确的复数排序而导致的 tf2zpk 测试失败。
#11044: 维护:choose_conv_method 可以为 longcomplex 选择 fftconvolution
#11046: 测试:降低使用参考 lapack 的 ppc64le 的容差
#11048: 文档:special:为正交多项式函数添加参考
#11049: 维护:正确的随机数初始化和可读性修复
#11051: 维护:pep8 清理
#11054: 测试:提高 dual_annealing SLSQP 测试的测试精度
#11055: 文档:special:为 `zeta` 添加参考
#11056: API:弃用 Rotation 中的 normalized 关键字
#11065: 文档:Ubuntu 开发环境快速入门不应修改…
#11066: 错误:跳过 numpy 顶层类型的弃用
#11067: 文档:更新了文档,以保持写作风格的一致性
#11070: 文档:对 Ubuntu 开发环境快速入门的修订应…
#11073: 文档:修复 1.4.0 发行说明
#11081: API:将 Rotation.match_vectors 替换为 align_vectors
#11083: 文档:更多 1.4.0 发行说明修复
#11092: 错误:stats:修复了一些分布的冻结
#11096: 错误:scipy.sparse.csgraph:修复了问题 #10774
#11124: 修复与 _stats.pyx 相关的 Cython 警告
#11126: 错误:interpolate/fitpack:修复 splprep 中的内存泄漏
#11127: 避免 CSR 和 CSC 矩阵索引中潜在的段错误
#11152: 错误:修复 multiscale_graphcorr 中的随机状态错误
#11166: 错误:空稀疏切片形状
#11167: 错误:signal.resample 中冗余的 fft
#11181: 测试:修复 aarch64 测试的容差
#11182: 测试:提高 test_maxiter_worsening 的容差
#11199: 错误:sparse.linalg:非对称实数移位反转 ARPACK 特征值选择中的错误