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.periodogramscipy.signal.welch,提供了基于DFT的谱估计器。

scipy.optimize 改进#

L-BFGS-B 和 TNC 中的回调函数#

为L-BFGS-B和TNC最小化解算器添加了回调机制。

盆地跳跃全局优化 (scipy.optimize.basinhopping)#

一种新的全局优化算法。Basinhopping 旨在高效地找到平滑函数的全局最小值。

scipy.special 改进#

修订的复杂误差函数#

与误差函数相关的特殊函数的计算现在使用了一个新的 Faddeeva 库来自 MIT,这提高了它们的数值精度。缩放和虚误差函数 erfcxerfi 也被添加,并且 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.blasscipy.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 中已被弃用。

fblascblas#

访问模块 scipy.linalg.fblascblasflapackclapack 已被弃用。请改用模块 scipy.linalg.lapackscipy.linalg.blas

向后不兼容的更改#

移除 scipy.io.save_as_module#

函数 scipy.io.save_as_module 在 Scipy 0.11.0 中已被弃用,并且现在已被移除。

其私有支持模块 scipy.io.dumbdbm_patchedscipy.io.dumb_shelve 也被移除。

axis 参数已添加到 scipy.stats.scoreatpercentile#

函数 scipy.stats.scoreatpercentile 已经添加了 axis 参数。默认参数是 axis=None,这意味着计算是在展平的数组上进行的。在此更改之前,scoreatpercentile 的行为就好像给出了 axis=0。使用 scoreatpercentile 处理多维数组的代码需要添加 axis=0 到函数调用中以保持旧的行为。(这个API更改在0.12.0版本发布后很长时间才被注意到。)

作者#

  • 安东·阿赫梅罗夫 +

  • 亚历山大·埃伯斯佩歇尔 +

  • 安妮·阿奇博尔德

  • Jisk Attema +

  • K.-Michael Aye +

  • bemasc +

  • 塞巴斯蒂安·伯格 +

  • 弗朗索瓦·布洛涅 +

  • 马修·布雷特

  • Lars Buitinck

  • 史蒂文·伯恩斯 +

  • 蒂姆·塞拉 +

  • 基督教 +

  • 基思·克劳森 +

  • David Cournapeau

  • 内森·克罗克 +

  • endolith

  • 布拉德利·M·弗罗伊

  • 马修·R·古德曼

  • 克里斯托夫·戈尔克

  • Ralf Gommers

  • 罗伯特·大卫·格兰特

  • Yaroslav Halchenko

  • 查尔斯·哈里斯

  • 乔纳森·赫尔姆斯

  • 安德烈亚斯·希尔博尔

  • Hugo +

  • Oleksandr Huziy

  • Jeroen Demeyer +

  • 约翰内斯·舍恩伯格 +

  • 史蒂文·G·约翰逊 +

  • 克里斯·乔丹-斯奎尔

  • 乔纳森·泰勒 +

  • 尼克拉斯·克罗格 +

  • 杰罗姆·基耶夫 +

  • kingson +

  • 乔什·劳伦斯

  • 丹尼斯·拉萨尔德

  • 亚历克斯·利奇 +

  • 蒂姆·莱斯利

  • 理查德·林兹利 +

  • 洛伦佐·卢恩戈 +

  • 斯蒂芬·麦奎伊 +

  • MinRK

  • Sturla Molden +

  • 埃里克·摩尔 +

  • mszep +

  • 马特·纽维尔 +

  • 弗拉德·尼库莱

  • Travis Oliphant

  • 大卫·帕克 +

  • 法比安·佩德罗萨

  • 约瑟夫·珀克托尔德

  • 扎克·普洛斯基 +

  • 亚历克斯·莱因哈特 +

  • 吉勒·罗什福尔 +

  • Ciro Duran Santillli +

  • 扬·施吕特 +

  • 乔纳森·肖尔茨 +

  • 安东尼·斯科帕茨

  • Skipper Seabold

  • 法布里斯·席尔瓦 +

  • 斯科特·辛克莱

  • 雅各布·史蒂文森

  • Sturla Molden +

  • 朱利安·泰勒 +

  • thorstenkranz +

  • 约翰·特拉弗斯 +

  • 真实价格 +

  • Nicky van Foreest

  • Jacob Vanderplas

  • 帕特里克·瓦林利

  • 丹尼尔·维尔科夫 +

  • 保罗·维尔塔宁

  • 斯蒂芬·范·德·瓦特

  • 沃伦·韦克瑟

共有75人参与了此次发布。名字旁边有“+”号的人首次贡献了补丁。