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.dlsim、scipy.signal.dimpulse 和 scipy.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) 已添加 sort 关键字,以允许对所得 Schur 形式中的特征值进行排序。
额外的特殊矩阵 (scipy.linalg)#
hilbert 和 invhilbert 函数已添加到 scipy.linalg。
scipy.stats 的增强功能#
Fisher 精确检验的 单侧形式 也已在
stats.fisher_exact中实现。已添加用于计算列联表中因子独立性卡方检验的函数
stats.chi2_contingency,以及相关的实用函数stats.contingency.margins和stats.contingency.expected_freq。
scipy.special 的增强功能#
函数 logit(p) = log(p/(1-p)) 和 expit(x) = 1/(1+exp(-x)) 分别已实现为 scipy.special.logit 和 scipy.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.linalg 和 scipy.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 部分,提供了推荐的导入指南并指定了哪些子模块是公共的,哪些不是。