SciPy 0.10.0 发布说明#

SciPy 0.10.0 是8个月辛勤工作的结晶。它包含了许多新功能、大量的错误修复、改进的测试覆盖率和更好的文档。在此版本中,有一些有限的弃用和向后不兼容的更改,这些更改如下所述。鼓励所有用户升级到此版本,因为有许多错误修复和优化。此外,我们的开发重点现在将转移到0.10.x分支的错误修复版本上,并在开发主分支上添加新功能。

发布亮点:

  • 支持将 Bento 作为可选的构建系统。

  • 支持广义特征值问题,以及ARPACK中所有可用的移位-反转模式。

此版本需要 Python 2.4-2.7 或 3.1- 以及 NumPy 1.5 或更高版本。

新功能#

Bento: 新的可选构建系统#

Scipy 现在可以使用 Bento 构建。Bento 有一些不错的功能,如并行构建和部分重建,这是默认构建系统(distutils)无法实现的。有关使用说明,请参阅 scipy 顶级目录中的 BENTO_BUILD.txt。

目前 Scipy 有三个构建系统,distutils、numscons 和 bento。Numscons 已被弃用,并计划在下一个版本中可能被移除。

scipy.sparse.linalg 中的广义和移位逆特征值问题#

稀疏特征值问题求解函数 scipy.sparse.eigs/eigh 现在支持广义特征值问题,以及ARPACK中所有可用的移位-反转模式。

离散时间线性系统 (scipy.signal)#

SciPy 增加了对模拟离散时间线性系统的支持,包括 scipy.signal.dlsimscipy.signal.dimpulsescipy.signal.dstep。通过 scipy.signal.cont2discrete 函数,还可以实现从连续时间表示到离散时间表示的线性系统转换。

scipy.signal 的改进#

现在可以使用新函数 scipy.signal.lombscargle 计算 Lomb-Scargle 周期图。

前向-后向滤波函数 scipy.signal.filtfilt 现在可以对 n 维 numpy 数组的指定轴上的数据进行滤波。(之前它只能处理一维数组。)添加了选项,以便在滤波前对数据进行扩展时提供更多控制。

使用 scipy.signal.firwin2 设计 FIR 滤波器现在有选项可以创建类型 III(在零频率和奈奎斯特频率处为零)和类型 IV(在零频率处为零)的滤波器。

附加的分解选项 (scipy.linalg)#

在Schur分解例程(scipy.linalg.schur)中添加了一个排序关键字,以允许对结果Schur形式中的特征值进行排序。

其他特殊矩阵 (scipy.linalg)#

函数 hilbertinvhilbert 已添加到 scipy.linalg 中。

scipy.stats 的改进#

  • Fisher 精确检验的 单侧形式 现在也在 stats.fisher_exact 中实现了。

  • 已添加用于计算列联表中因子独立性卡方检验的函数 stats.chi2_contingency,以及相关的实用函数 stats.contingency.marginsstats.contingency.expected_freq

scipy.special 的改进#

函数 logit(p) = log(p/(1-p))expit(x) = 1/(1+exp(-x)) 分别作为 scipy.special.logitscipy.special.expit 实现。

稀疏矩阵的Harwell-Boeing文件格式的基本支持#

读和写都通过一个简单的基于函数的API支持,以及一个更完整的API来控制数字格式。这些函数可以在 scipy.sparse.io 中找到。

以下功能被支持:

  • 以 CSC 格式读取和写入稀疏矩阵

  • 仅支持真实的、对称的、组装的矩阵(RUA 格式)

已弃用的功能#

scipy.maxentropy#

maxentropy 模块未维护,很少使用,并且在多个版本中功能不佳。因此,此版本已弃用,并将在 scipy 0.11 中移除。scikits.learn 中的逻辑回归是此功能的良好替代方案。scipy.maxentropy.logsumexp 函数已移至 scipy.misc

scipy.lib.blas#

scipy.linalgscipy.lib 中有类似的 BLAS 包装器。这些现在已经被整合为 scipy.linalg.blas,而 scipy.lib.blas 已被弃用。

Numscons 构建系统#

numscons 构建系统正在被 Bento 取代,并将在下一个 scipy 版本之一中移除。

向后不兼容的更改#

已弃用的名称 invnorm 已从 scipy.stats.distributions 中移除,该分布现可作为 invgauss 使用。

以下已弃用的非线性求解器已从 scipy.optimize 中移除:

- ``broyden_modified`` (bad performance)
- ``broyden1_modified`` (bad performance)
- ``broyden_generalized`` (equivalent to ``anderson``)
- ``anderson2`` (equivalent to ``anderson``)
- ``broyden3`` (obsoleted by new limited-memory broyden methods)
- ``vackar`` (renamed to ``diagbroyden``)

其他更改#

scipy.constants 已更新为包含CODATA 2010常数。

__all__ 字典已添加到所有模块中,这清理了命名空间(特别适用于交互式工作)。

文档中新增了一个API部分,提供了推荐的导入指南,并指定了哪些子模块是公开的,哪些不是。

作者#

此版本包含以下人员的贡献(至少为该版本贡献了一个补丁,按字母顺序排列姓名):

  • 杰夫·阿姆斯特朗 +

  • 马修·布雷特

  • Lars Buitinck +

  • David Cournapeau

  • FI$H 2000 +

  • 迈克尔·麦克尼尔·福布斯 +

  • 马蒂 G +

  • 克里斯托夫·戈尔克

  • Ralf Gommers

  • Yaroslav Halchenko

  • 查尔斯·哈里斯

  • Thouis (Ray) Jones +

  • 克里斯·乔丹-斯奎尔 +

  • 罗伯特·克恩

  • 克里斯·拉舍尔 +

  • Wes McKinney +

  • Travis Oliphant

  • 法比安·佩德罗萨

  • 约瑟夫·珀克托尔德

  • 托马斯·罗比塔耶 +

  • Pim Schellart +

  • 安东尼·斯科帕茨 +

  • Skipper Seabold +

  • 法兹勒·沙里亚尔 +

  • 大卫·辛查 +

  • 斯科特·辛克莱尔 +

  • 安德烈·斯米尔诺夫 +

  • 科林·RM·斯托克斯 +

  • 马丁·泰希曼 +

  • Jake Vanderplas +

  • Gaël Varoquaux +

  • 保罗·维尔塔宁

  • 斯蒂芬·范·德·瓦特

  • 沃伦·韦克瑟

  • 马克·维贝 +

共有 35 人参与了此次发布。名字后面带有“+”的人首次贡献了补丁。