SciPy 0.8.0发行说明¶
目录
本项目0.8.0是17个月辛勤工作的顶峰。它包含许多新功能、大量错误修复、改进的测试覆盖率和更好的文档。此版本中有许多弃用和API更改,如下所述。我们鼓励所有用户升级到此版本,因为有大量的错误修复和优化。此外,我们的开发注意力现在将转移到0.8.x分支上的错误修复版本,以及在开发主干上添加新功能。此版本需要Python2.4-2.6和NumPy 1.4.1或更高版本。
请注意,本网站仍被认为处于“测试版”状态,因为我们正在努力实现本网站的1.0.0版本。1.0.0版本将标志着SciPy开发过程中的一个重要里程碑,之后更改包结构或API将变得更加困难。虽然这些1.0之前的版本被认为是“测试版”,但我们致力于让它们尽可能地没有bug。
但是,在1.0版本之前,我们正在积极审查和改进功能、组织和界面。这样做是为了使软件包尽可能连贯、直观和有用。要实现这一点,我们需要来自用户社区的帮助。具体地说,我们需要关于项目各个方面的反馈--从我们实现的算法到函数调用签名的详细信息。
Python 3¶
由于Numpy已经移植,Python3兼容性正在计划中,目前在技术上是可行的。但是,由于兼容Python3的Numpy 1.5尚未发布,Scipy 0.8中尚未包含对Scipy中的Python3的支持。计划在2010年秋季推出的SciPy 0.9很可能包括对Python3的实验支持。
主要文档改进¶
SciPy文档得到了极大的改进。
不推荐使用的功能¶
将输入交换为相关函数(scipy.ignal)¶
关注度相关,关联2d,卷积和卷积2d。如果第二个输入大于第一个输入,则在调用基础计算例程之前交换输入。此行为已弃用,并将在Scipy 0.9.0中删除。
过时代码已弃用(scipy.misc)¶
模块 helpmod , ppimport 和 pexec 从… scipy.misc
都已弃用。它们将从0.9版的SciPy中删除。
其他不推荐使用的词¶
linalg:函数 solveh_banded 当前返回包含Cholesky因式分解的元组和线性系统的解。在本网站0.9中,返回值就是解决方案。
该函数 constants.codata.find 将生成DeproationWarning。在Scipy版本0.8.0中,向函数添加了关键字参数‘disp’,默认值为‘True’。在0.9.0中,默认值为‘false’。
这个 qshape 的关键字参数 signal.chirp 已弃用。使用参数 vertex_zero 取而代之的是。
将多项式的系数作为自变量传递 f0 至 signal.chirp 已弃用。使用函数 signal.sweep_poly 取而代之的是。
这个 io.recaster 模块已弃用,将在0.9.0中删除。
新功能¶
DCT支持(scipy.fftpack)¶
增加了新的实数变换,即离散余弦变换的DCT和IDCT;类型I、II和III可用。
对FFT函数的单精度支持(scipy.fftpack)¶
FFT函数现在也可以处理单精度输入:如果x是单精度,则FFT(X)将返回单精度数组。
目前,对于不是2、3和5组合的FFT大小,转换在内部以双精度计算,以避免FFTPACK中的舍入误差。
相关函数现在实现了通常的定义(scipy.ignal)¶
如果传递old_behavior=false参数,输出现在应该对应于它们的MATLAB和R对应项,并执行大多数人预期的操作:
相关、卷积和它们的2D对应物不再依赖于它们的相对形状来交换它们的输入;
相关函数现在在计算滑动和积的同时共轭它们的第二个变元,这与通常的相关定义相对应。
添加和修改LTI函数(scipy.ignal)¶
功能 impulse2 和 step2 已添加到
scipy.signal
。他们使用函数scipy.signal.lsim2
分别计算系统的脉冲响应和阶跃响应。该函数
scipy.signal.lsim2
已更改为将任何其他关键字参数传递给ODE解算器。
改进的波形发生器(scipy.ignal)¶
对 chirp 中的函数 scipy.signal
作出了以下决定:
在以下情况下生成的波形 method="logarithmic" 它现在产生的波形也被称为“指数”或“几何”啁啾。(请参阅https://en.wikipedia.org/wiki/Chirp.)
一个新的 chirp 增加了“双曲线”方法。
而不是关键字 qshape , chirp 现在使用关键字 vertex_zero ,布尔值。
chirp 不再处理任意多项式。此功能已移至新功能, sweep_poly 。
一个新的功能, sweep_poly ,添加了。
scipy.linalg中的新函数和其他更改¶
功能 cho_solve_banded , circulant , companion , hadamard 和 leslie 已添加到 scipy.linalg
。
该函数 block_diag 已增强为接受标量和1D参数,以及通常的2D参数。
Scipy.Optimize中的新功能和更改¶
这个 curve_fit 函数已添加;它接受一个函数,并使用非线性最小二乘法将其与提供的数据进行拟合。
这个 leastsq 和 fsolve 函数现在在求解单个参数时返回大小为1的数组,而不是标量。
一种新的稀疏最小二乘求解器¶
这个 lsqr function was added to scipy.sparse
. This routine 查找大型稀疏线性方程组的最小二乘解。
基于ARPACK的稀疏奇异值分解¶
稀疏矩阵的SVD的一个简单实现可以在scipy.parse.linalg.eener.arpack中找到。它基于对<A,A>使用对称解算器,因此可能不是非常精确。
可供选择的行为适用于 scipy.constants.find
¶
关键字参数 disp 已添加到函数中 scipy.constants.find
,使用默认值 True 。什么时候 disp 是 True ,该行为与Scipy版本0.7中的行为相同。什么时候 False 时,该函数返回键列表,而不是打印它们。(在SciPy版本0.9中,默认设置将颠倒。)
不完全稀疏LU分解¶
Scipy现在包装SuperLU版本4.0,该版本支持不完整的稀疏LU分解。这些文件可以通过以下方式访问 scipy.sparse.linalg.spilu
。升级到SuperLU 4.0还修复了一些已知的错误。
更快的MATLAB文件读取器和默认行为更改¶
我们已经用Cython重写了MATLAB文件读取器,现在它读取MATLAB文件的速度应该与Matlab相同。
读者可以阅读MATLAB的命名函数和匿名函数,但不能编写它们。
在Scipy 0.8.0之前,我们已经将MATLAB结构数组作为Numpy对象数组返回,其中对象具有以结构字段命名的属性。从0.8.0开始,我们将MATLAB结构作为Numpy结构化数组返回。您可以使用可选的 struct_as_record=False
关键字参数为 scipy.io.loadmat
还有朋友。
MATLAB文件写入器有一个不一致之处,它在MATLAB 5文件中以列向量的形式写入数字一维数组,在MATLAB 4文件中以行向量的形式写入数字一维数组。我们将在下一个版本中更改这一点,因此两者都写入行向量。有一个 FutureWarning 在调用编写器以警告此更改时,目前我们建议使用 oned_as='row'
关键字参数为 scipy.io.savemat
还有朋友。
正交多项式的快速求值¶
正交多项式的值可以用新的矢量化函数在[1]中求值。 scipy.special
: eval_legendre , eval_chebyt , eval_chebyu , eval_chebyc , eval_chebys , eval_jacobi , eval_laguerre , eval_genlaguerre , eval_hermite , eval_hermitenorm , eval_gegenbauer , eval_sh_legendre , eval_sh_chebyt , eval_sh_chebyu , eval_sh_jacobi 。这比构建多项式的全系数表示更快,后者以前是唯一可用的方法。
请注意,如果可能,前面的正交多项式例程现在也将调用此功能。
Lambert W函数¶
scipy.special.lambertw
现在可用于计算Lambert W函数。
改进的超几何2F1函数¶
实施 scipy.special.hyp2f1
对实参数进行了修正。新版本应该为所有实参生成精确值。
更灵活的径向基函数插值接口¶
这个 scipy.interpolate.Rbf
除了内置的径向基函数(可以用字符串参数选择)外,类现在还接受一个可调用函数作为“function”参数的输入。
已删除的功能¶
scipy.stsci:包已删除
该模块 scipy.misc.limits 被移除了。
scipy.io¶
NumPy和SciPy中的IO代码正在进行广泛的修改。NumPy将是读写NumPy数组的基本代码所在的位置,而SciPy将容纳各种数据格式(数据、音频、视频、图像、MATLAB等)的文件读取器和写入器。
中的几个函数 scipy.io
在0.8.0版本中删除,包括: npfile , save , load , create_module , create_shelf , objload , objsave , fopen , read_array , write_array , fread , fwrite , bswap , packbits , unpackbits ,以及 convert_objectarray 。其中一些函数已经被NumPy的原始读写功能、内存映射功能或数组方法所取代。因为基本的数组读写功能现在由NumPy处理,所以其他的已经从SciPy移到了NumPy。