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
为存储为稀疏邻接矩阵的图实现了许多高效的图算法。可用例程包括:
connected_components
-确定图形的连通分量
laplacian
-计算图的拉普拉斯矩阵
shortest_path
-计算正图上各点之间的最短路径
dijkstra
-使用Dijkstra最短路径算法
floyd_warshall
-使用弗洛伊德-沃肖尔算法计算最短路径
breadth_first_order
-计算节点的广度-第一阶
depth_first_order
-计算深度优先的节点顺序
breadth_first_tree
-从给定节点构建广度优先树
depth_first_tree
-从给定节点构建深度优先树
minimum_spanning_tree
-构造图的最小生成树
scipy.optimize
改进¶
此版本中的优化模块受到了极大的关注。除了添加测试、文档改进、错误修复和代码清理外,还进行了以下改进:
增加了对单变量和多变量函数极小器的统一接口。
增加了用于多元函数求根算法的统一接口。
L-BFGS-B算法已更新到版本3.0。
到最小化设备的统一接口¶
两个新函数 scipy.optimize.minimize
和 scipy.optimize.minimize_scalar
分别为多元函数和单变量函数的极小器提供了一个公共接口。对于多变量函数, scipy.optimize.minimize
为无约束优化的方法提供接口 (fmin
, fmin_powell
, fmin_cg
, fmin_ncg
, fmin_bfgs
和 anneal )或约束优化 (fmin_l_bfgs_b
, fmin_tnc
, fmin_cobyla
和 fmin_slsqp
)。对于单变量函数, scipy.optimize.minimize_scalar
为无约束和有界优化的方法提供接口 (brent
, golden
, fminbound
)。这样可以更轻松地在解算器之间进行比较和切换。
根查找算法的统一接口¶
新功能 scipy.optimize.root
为多元函数的求根算法提供通用接口,嵌入 fsolve
, leastsq
和 nonlin
解算器。
scipy.linalg
改进¶
一种新的矩阵方程求解器¶
西尔维斯特方程的求解器 (scipy.linalg.solve_sylvester
、离散和连续的Lyapunov方程 (scipy.linalg.solve_lyapunov
, scipy.linalg.solve_discrete_lyapunov
)和离散和连续的代数Riccati方程 (scipy.linalg.solve_continuous_are
, scipy.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.diags
和 scipy.sparse.block_diag
,分别方便地构造了对角稀疏矩阵和挡路-对角稀疏矩阵。
scipy.sparse.csc_matrix
和 csr_matrix
现在支持运营 sin
, tan
, arcsin
, arctan
, sinh
, tanh
, arcsinh
, arctanh
, rint
, sign
, expm1
, log1p
, deg2rad
, rad2deg
, floor
, ceil
和 trunc
。以前,这些运算必须通过对矩阵的 data
属性。
LSMR迭代求解器¶
LSMR是一种求解(稀疏)线性和线性最小二乘系统的迭代方法,添加如下 scipy.sparse.linalg.lsmr
。
离散正弦变换¶
离散正弦变换函数的绑定已添加到 scipy.fftpack
。
scipy.interpolate
改进¶
对于球坐标中的插值,这三个类 scipy.interpolate.SmoothSphereBivariateSpline
, scipy.interpolate.LSQSphereBivariateSpline
,以及 scipy.interpolate.RectSphereBivariateSpline
已经添加了。
入库统计信息 (scipy.stats
)¶
统计模块获得了执行入库统计的功能,这是一维、二维和多维直方图的概括: scipy.stats.binned_statistic
, scipy.stats.binned_statistic_2d
和 scipy.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
功能。
这个 xa 和 xb 中所有分发版本的参数 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_ind
, scipy.stats.ttest_rel
和 scipy.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
关键字参数。