SciPy 0.12.0 发行说明#
SciPy 0.12.0 是 7 个月辛勤工作的结晶。它包含许多新功能、大量错误修复、改进的测试覆盖率和更好的文档。此版本中有许多弃用和 API 更改,如下所述。鼓励所有用户升级到此版本,因为它包含大量的错误修复和优化。此外,我们的开发重心将转向 0.12.x 分支上的错误修复版本,以及主分支上的新功能添加。
此版本的一些亮点是
scipy.spatial 中完成了 QHull 包装器。
cKDTree 现在是 KDTree 的直接替代品。
一种新的全局优化器,basinhopping。
从同一代码库支持 Python 2 和 Python 3(不再需要 2to3)。
此版本需要 Python 2.6、2.7 或 3.1-3.3 以及 NumPy 1.5.1 或更高版本。此版本已停止支持 Python 2.4 和 2.5。
新功能#
scipy.spatial 改进#
cKDTree 功能齐全#
KDTree 的 Cython 版本 cKDTree 现已功能齐全。大多数操作(构建、查询、query_ball_point、query_pairs、count_neighbors 和 sparse_distance_matrix)在 cKDTree 中的速度比在 KDTree 中快 200 到 1000 倍。在非常小的限制下,cKDTree 具有与 KDTree 完全相同的接口,并且可以作为直接替代品使用。
Voronoi 图和凸包#
scipy.spatial 现在包含使用 Qhull 库计算 Voronoi 图和凸包的功能。(Delaunay 三角剖分自 Scipy 0.9.0 起可用。)
Delaunay 改进#
现在可以在 Delaunay 三角剖分中传入自定义 Qhull 选项。如果存在共面点,现在也会记录下来。Delaunay 三角剖分的增量构建现在也成为可能。
谱估计器 (scipy.signal)#
添加了 scipy.signal.periodogram 和 scipy.signal.welch 函数,提供基于 DFT 的谱估计器。
scipy.optimize 改进#
L-BFGS-B 和 TNC 中的回调函数#
L-BFGS-B 和 TNC 最小化求解器中添加了回调机制。
盆地跳跃全局优化 (scipy.optimize.basinhopping)#
一种新的全局优化算法。Basinhopping 旨在高效地找到平滑函数的全局最小值。
scipy.special 改进#
修订后的复数误差函数#
误差函数相关的特殊函数计算现在使用 MIT 的新 Faddeeva 库,这提高了它们的数值精度。还添加了缩放和虚数误差函数 erfcx 和 erfi,并且 Dawson 积分 dawsn 现在可以用于复数参数的评估。
更快的正交多项式#
scipy.special 中正交多项式(eval_* 例程)的评估现在更快,并且它们的 out= 参数功能正常。
scipy.sparse.linalg 功能#
在
scipy.sparse.linalg.spsolve中,b参数现在可以是向量或矩阵。添加了
scipy.sparse.linalg.inv。它使用spsolve来计算稀疏矩阵的逆。添加了
scipy.sparse.linalg.expm。它使用与scipy.linalg.expm中现有密集数组实现类似的算法来计算稀疏矩阵的指数。
列出 scipy.io 中的 Matlab(R) 文件内容#
scipy.io 中提供了一个新函数 whosmat,用于在不将 MAT 文件读入内存的情况下检查其内容。
文档化的 BLAS 和 LAPACK 底层接口 (scipy.linalg)#
模块 scipy.linalg.blas 和 scipy.linalg.lapack 可用于访问底层 BLAS 和 LAPACK 函数。
多项式插值改进 (scipy.interpolate)#
scipy.interpolate 中的重心、Krogh、分段和 pchip 多项式插值器现在接受 axis 参数。
弃用功能#
scipy.lib.lapack#
模块 scipy.lib.lapack 已弃用。您可以改用 scipy.linalg.lapack。模块 scipy.lib.blas 已在 Scipy 0.10.0 中弃用。
fblas 和 cblas#
访问模块 scipy.linalg.fblas、cblas、flapack、clapack 已弃用。请改用模块 scipy.linalg.lapack 和 scipy.linalg.blas。
向后不兼容的变更#
移除 scipy.io.save_as_module#
函数 scipy.io.save_as_module 在 Scipy 0.11.0 中已弃用,现已移除。
其私有支持模块 scipy.io.dumbdbm_patched 和 scipy.io.dumb_shelve 也已移除。
axis 参数已添加到 scipy.stats.scoreatpercentile#
函数 scipy.stats.scoreatpercentile 已添加 axis 参数。默认参数为 axis=None,这意味着计算在扁平数组上进行。在此更改之前,scoreatpercentile 将像给定了 axis=0 一样操作。使用多维数组调用 scoreatpercentile 的代码将需要向函数调用添加 axis=0 以保留旧行为。(此 API 更改在 0.12.0 发布很久之后才被注意到。)