SciPy 0.11.0发行说明

SciPy 0.11.0是8个月辛勤工作的顶峰。它包含许多新功能、大量错误修复、改进的测试覆盖率和更好的文档。此版本的亮点包括:

  • 增加了一个新的模块,提供了一些常用的稀疏图算法。

  • 为现有的优化和寻根功能添加了新的统一接口。

我们鼓励所有用户升级到此版本,因为有大量的错误修复和优化。我们的开发注意力现在将转移到0.11.x分支上的错误修复版本,以及在主分支上添加新功能。

此版本需要Python2.4-2.7或3.1-3.2和NumPy 1.5.1或更高版本。

新功能

稀疏图子模

新子模块 scipy.sparse.csgraph 为存储为稀疏邻接矩阵的图实现了许多高效的图算法。可用例程包括:

scipy.optimize 改进

此版本中的优化模块受到了极大的关注。除了添加测试、文档改进、错误修复和代码清理外,还进行了以下改进:

  • 增加了对单变量和多变量函数极小器的统一接口。

  • 增加了用于多元函数求根算法的统一接口。

  • L-BFGS-B算法已更新到版本3.0。

到最小化设备的统一接口

两个新函数 scipy.optimize.minimizescipy.optimize.minimize_scalar 分别为多元函数和单变量函数的极小器提供了一个公共接口。对于多变量函数, scipy.optimize.minimize 为无约束优化的方法提供接口 (fminfmin_powellfmin_cgfmin_ncgfmin_bfgsanneal )或约束优化 (fmin_l_bfgs_bfmin_tncfmin_cobylafmin_slsqp )。对于单变量函数, scipy.optimize.minimize_scalar 为无约束和有界优化的方法提供接口 (brentgoldenfminbound )。这样可以更轻松地在解算器之间进行比较和切换。

根查找算法的统一接口

新功能 scipy.optimize.root 为多元函数的求根算法提供通用接口,嵌入 fsolveleastsqnonlin 解算器。

scipy.linalg 改进

一种新的矩阵方程求解器

西尔维斯特方程的求解器 (scipy.linalg.solve_sylvester 、离散和连续的Lyapunov方程 (scipy.linalg.solve_lyapunovscipy.linalg.solve_discrete_lyapunov )和离散和连续的代数Riccati方程 (scipy.linalg.solve_continuous_arescipy.linalg.solve_discrete_are )已添加到 scipy.linalg 。这些求解器常用于线性控制理论领域。

QZ和QR分解

现在可以使用以下命令计算QZ或广义Schur分解 scipy.linalg.qz 。此函数包装LAPACK例程sgges、dgges、cgges和zgges。

该函数 scipy.linalg.qr_multiply ,它允许高效地计算Q(来自QR分解)和向量的矩阵乘积。

帕斯卡矩阵

用于创建帕斯卡矩阵的函数, scipy.linalg.pascal ,添加了。

稀疏矩阵的构造和运算

两个新功能, scipy.sparse.diagsscipy.sparse.block_diag ,分别方便地构造了对角稀疏矩阵和挡路-对角稀疏矩阵。

scipy.sparse.csc_matrixcsr_matrix 现在支持运营 sintanarcsinarctansinhtanharcsinharctanhrintsignexpm1log1pdeg2radrad2degfloorceiltrunc 。以前,这些运算必须通过对矩阵的 data 属性。

LSMR迭代求解器

LSMR是一种求解(稀疏)线性和线性最小二乘系统的迭代方法,添加如下 scipy.sparse.linalg.lsmr

离散正弦变换

离散正弦变换函数的绑定已添加到 scipy.fftpack

scipy.interpolate 改进

对于球坐标中的插值,这三个类 scipy.interpolate.SmoothSphereBivariateSplinescipy.interpolate.LSQSphereBivariateSpline ,以及 scipy.interpolate.RectSphereBivariateSpline 已经添加了。

入库统计信息 (scipy.stats )

统计模块获得了执行入库统计的功能,这是一维、二维和多维直方图的概括: scipy.stats.binned_statisticscipy.stats.binned_statistic_2dscipy.stats.binned_statistic_dd

不推荐使用的功能

scipy.sparse.cs_graph_components 已成为稀疏图形子模块的一部分,并重命名为 scipy.sparse.csgraph.connected_components 。调用前一个例程将导致不推荐使用警告。

scipy.misc.radon 已被弃用。在SCRICKITS-IMAGE中可以找到功能更全的氡变换。

scipy.io.save_as_module 已被弃用。保存多个Numpy数组的更好方法是 numpy.savez 功能。

这个 xaxb 中所有分发版本的参数 scipy.stats.distributions 已经没有使用过;它们现在已被弃用。

向后不兼容的更改

删除 scipy.maxentropy

这个 scipy.maxentropy 0.10.0版中已弃用的模块已被删除。在SCRICKIT.LEARCH中的逻辑回归是该功能的一种良好且现代的替代方案。

行为上的细微变化 splev

样条求值函数现在的行为类似于 interp1d 用于大小为1的数组。以前的行为::

>>> from scipy.interpolate import splev, splrep, interp1d
>>> x = [1,2,3,4,5]
>>> y = [4,5,6,7,8]
>>> tck = splrep(x, y)
>>> splev([1], tck)
4.
>>> splev(1, tck)
4.

更正的行为::

>>> splev([1], tck)
array([ 4.])
>>> splev(1, tck)
array(4.)

这也会影响到 UnivariateSpline 上课。

的行为 scipy.integrate.complex_ode

的行为 y 的属性 complex_ode 已经改变了。以前,它以以下形式表示复值解::

z = ode.y[::2] + 1j * ode.y[1::2]

现在,它直接是复值解决方案::

z = ode.y

T检验行为的细微变化

T检验 scipy.stats.ttest_indscipy.stats.ttest_relscipy.stats.ttest_1samp 已更改,现在0/0返回NaN而不是1。

其他变化

中的SuperLU源 scipy.sparse.linalg 已从上游更新到版本4.3。

该函数 scipy.signal.bode ,用于计算连续时间系统的幅值和相位数据。

两样本T检验 scipy.stats.ttest_ind 获得了比较方差不相等的样本的选项,即韦尔奇T检验。

scipy.misc.logsumexp 现在使用可选的 axis 关键字参数。

作者

此版本包含以下人员的工作(至少为此版本贡献了一个修补程序,名称按字母顺序排列):

  • 杰夫·阿姆斯特朗

  • 查德·贝克

  • Brandon Beacher+

  • Behrisch+

  • Borishim+

  • 马修·布雷特

  • 拉尔斯·比廷克(Lars Buitinck)

  • 路易斯·佩德罗·科埃略+

  • 约翰·科恩-塔努吉(Johann Cohen-Tanugi)

  • 大卫·库尔纳波(David Cournapeau)

  • 杜格尔+

  • 阿里·易卜拉欣+

  • 内石+

  • 比约恩·福尔斯曼+

  • 罗伯特·甘特纳+

  • 塞巴斯蒂安·加斯纳+

  • 克里斯托夫·戈尔克(Christoph Gohlke)

  • 拉尔夫·戈默斯

  • 雅罗斯拉夫·哈尔琴科

  • 查尔斯·哈里斯

  • 乔纳森·赫尔穆斯+

  • 安德烈亚斯·希尔博尔+

  • Marc Honnorat+

  • 乔纳森·亨特+

  • 马克西姆·伊万诺夫+

  • 索伊斯(雷)琼斯

  • 克里斯托弗·库斯特+

  • 乔什·劳伦斯+

  • Denis Laxalde+

  • 特拉维斯·奥列芬特

  • Joonas Paalasmaa+

  • 费边·佩德雷戈萨

  • 约瑟夫·帕克泰尔

  • 加文价格+

  • 吉姆·雷德福+

  • 安德鲁·施恩(Andrew Schein)+

  • 海豚船长

  • 雅各布·西尔特拉+

  • 斯科特·辛克莱

  • 亚历克西斯·塔巴里+

  • 马丁·泰希曼

  • 马特·特里+

  • Nicky van Foreest+

  • 雅各布·范德普拉斯

  • 帕特里克·瓦利+

  • 保利·维尔塔宁(Pauli Virtanen)

  • 尼尔斯·瓦格纳+

  • 达里尔·沃利+

  • 斯特凡·范德沃特

  • 黎明王+

  • David Warde-Farley+

  • 沃伦·韦克瑟(Warren Weckesser)

  • 塞巴斯蒂安·沃克+

  • Mike Wimmer+

  • 余志强+

总共有55人参与了这次发布。名字中带有“+”的人第一次贡献了一个补丁。