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 数组中给定轴上的数据。(以前它只处理 1 维数组。)已添加选项以允许更好地控制数据在过滤前的扩展方式。

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

额外的分解选项 (scipy.linalg)#

已向 Schur 分解例程 (scipy.linalg.schur) 添加了一个 `sort` 关键字,以允许在结果 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 版本中移除。

向后不兼容的更改#

已从 scipy.stats.distributions 中移除已弃用的名称 invnorm,此分布现在可作为 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 部分,其中提供了推荐的导入指南,并指定了哪些子模块是公开的,哪些不是。

作者#

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

  • Jeff Armstrong +

  • Matthew Brett

  • Lars Buitinck +

  • David Cournapeau

  • FI$H 2000 +

  • Michael McNeil Forbes +

  • Matty G +

  • Christoph Gohlke

  • Ralf Gommers

  • Yaroslav Halchenko

  • Charles Harris

  • Thouis (Ray) Jones +

  • Chris Jordan-Squire +

  • Robert Kern

  • Chris Lasher +

  • Wes McKinney +

  • Travis Oliphant

  • Fabian Pedregosa

  • Josef Perktold

  • Thomas Robitaille +

  • Pim Schellart +

  • Anthony Scopatz +

  • Skipper Seabold +

  • Fazlul Shahriar +

  • David Simcha +

  • Scott Sinclair +

  • Andrey Smirnov +

  • Collin RM Stocks +

  • Martin Teichmann +

  • Jake Vanderplas +

  • Gaël Varoquaux +

  • Pauli Virtanen

  • Stefan van der Walt

  • Warren Weckesser

  • Mark Wiebe +

共有 35 人为此版本做出了贡献。名字旁有“+”的人是首次贡献补丁。