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 功能完整#
Cython 版本的 KDTree,即 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
改进#
修订的复杂误差函数#
与误差函数相关的特殊函数的计算现在使用了一个新的 Faddeeva 库来自 MIT,这提高了它们的数值精度。缩放和虚误差函数 erfcx
和 erfi
也被添加,并且 Dawson 积分 dawsn
现在可以对复数参数进行求值。
更快的正交多项式#
正交多项式的评估(eval_*
例程)在 scipy.special
中现在更快了,它们的 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版本发布后很长时间才被注意到。)