SciPy 0.17.0发行说明¶
目录
SciPy 0.17.0是6个月辛勤工作的顶峰。它包含许多新功能、大量错误修复、改进的测试覆盖率和更好的文档。此版本中有许多弃用和API更改,如下所述。我们鼓励所有用户升级到此版本,因为有大量的错误修复和优化。此外,我们的开发注意力现在将转移到0.17.x分支上的错误修复版本,以及在主分支上添加新功能。
此版本需要Python2.6、2.7或3.2-3.5以及NumPy 1.6.2或更高版本。
版本亮点:
带约束的线性和非线性最小二乘优化的新函数:
scipy.optimize.lsq_linear
和scipy.optimize.least_squares
支持使用边界进行拟合
scipy.optimize.curve_fit
。对以下方面进行了重大改进
scipy.stats
,提供了许多功能,可以更好地处理具有nan或为空的输入,改进了文档,并且scipy.stats
和scipy.stats.mstats
。中的显著性能改进和新功能
scipy.spatial.cKDTree
。
新功能¶
scipy.cluster
改进¶
一种新功能 scipy.cluster.hierarchy.cut_tree
根据链接矩阵确定切割树。
scipy.io
改进¶
scipy.io.mmwrite
获得了对对称稀疏矩阵的支持。
scipy.io.netcdf
获得了对基于数据属性的数据屏蔽和缩放的支持。
scipy.optimize
改进¶
线性指派问题求解器¶
scipy.optimize.linear_sum_assignment
是一个求解线性和分配问题的新函数。它使用匈牙利算法(Kuhn-Munkres)。
最小二乘优化¶
一个新函数,用于 非线性 添加了带约束的最小二乘优化: scipy.optimize.least_squares
。它提供了几种方法:无约束问题的Levenberg-MarQuardt方法和约束问题的两种信赖域方法。此外,它还提供了不同的损失函数。新的信赖域方法也可以处理稀疏雅可比。
一个新函数,用于 线性 添加了带约束的最小二乘优化: scipy.optimize.lsq_linear
。它提供了一种信赖域方法以及有界变量最小二乘(BVLS)算法的实现。
scipy.optimize.curve_fit
现在支持使用边界拟合。
scipy.signal
改进¶
A mode
关键字已添加到 scipy.signal.spectrogram
,让它返回功率谱密度以外的其他光谱图。
scipy.stats
改进¶
中的许多函数 scipy.stats
已经获得了一个 nan_policy
关键字,该关键字允许指定如何处理包含NAN的输入:传播NAN、引发错误或省略NAN。
中的许多函数 scipy.stats
已改进,可以正确处理空的或包含INFS/NAN的输入数组。
中的许多同名函数 scipy.stats
and scipy.stats.mstats
were changed to have matching signature and behavior. See gh-5474 有关详细信息,请参阅。
scipy.stats.binom_test
和 scipy.stats.mannwhitneyu
获得了一个关键字 alternative
,它允许指定要测试的假设。最终,所有假设检验函数都将获得此关键字。
对于许多连续分布的方法,现在接受复数输入。
矩阵正态分布已经实现为 scipy.stats.matrix_normal
。
scipy.sparse
改进¶
这个 axis 将关键字添加到稀疏规范中, scipy.sparse.linalg.norm
。
scipy.spatial
改进¶
scipy.spatial.cKDTree
已部分重写以提高性能,并添加了几个新功能:
这个
query_ball_point
方法变得明显更快了。query
和query_ball_point
获得了一个n_jobs
用于并行执行的关键字构建和查询方法现在发布Gil
全面的酸洗支持
对周期空间的支持
这个
sparse_distance_matrix
方法现在可以返回稀疏矩阵类型
scipy.interpolate
改进¶
的越界行为 scipy.interpolate.interp1d
已经改进了。使用由两个元素组成的元组作为 fill_value
参数为插值范围下方和上方的输入指定单独的填充值。线性和最近的插值类型 scipy.interpolate.interp1d
支持通过 fill_value="extrapolate"
关键字。
fill_value
也可以设置为类似数组(或对于低于和高于不同的值,设置为类似于数组的两个元素元组),只要它正确地广播到数组的非内插维数即可。这在以前的Scipy版本中得到了隐式支持,但是现在支持已经形式化,并且在使用之前会进行兼容性检查。例如,一组 y
要使用形状进行插值的值 (2, 3, 5)
沿最后一个轴(2)插值可以接受 fill_value
具有形状的数组 ()
(单件), (1,)
, (2, 1)
, (1, 3)
, (3,)
,或 (2, 3)
;或者它可以是两个元素的元组,以指定分开的上下界限,其中两个元组元素中的每一个都遵守适当的广播规则。
scipy.linalg
改进¶
的默认算法 scipy.linalg.leastsq 已更改为使用LAPACK的功能 *gelsd
。想要获取先前行为的用户可以使用新关键字 lapack_driver="gelss"
(允许值为“Gelss”、“Gelsd”和“Gelsy”)。
scipy.sparse
矩阵和线性运算符现在支持矩阵 (@
)运算符(如果可用)(Python 3.5+)。看见 [峰值465] (https://legacy.python.org/dev/peps/pep-0465/)
一种新功能 scipy.linalg.ordqz
,用于具有重新排序的QZ分解,已被添加。
不推荐使用的功能¶
scipy.stats.histogram
不推荐使用,而是支持 np.histogram
,它速度更快,并提供相同的功能。
scipy.stats.threshold
和 scipy.mstats.threshold
都受到抨击,转而支持 np.clip
。有关详细信息,请参阅第617期。
scipy.stats.ss
已弃用。这是一个支持功能,并不意味着向用户公开。而且,名字也不清楚。有关详细信息,请参阅问题#663。
scipy.stats.square_of_sums
已弃用。这也是不打算向用户展示的支持功能。有关详细信息,请参阅问题#665和#663。
scipy.stats.f_value
, scipy.stats.f_value_multivariate
, scipy.stats.f_value_wilks_lambda
,以及 scipy.mstats.f_value_wilks_lambda
都已弃用。这些都与方差分析有关,对于这一点, scipy.stats
提供的功能相当有限,并且这些功能在独立环境中不是很有用。有关详细信息,请参阅问题#660和#650。
scipy.stats.chisqprob
已弃用。这是个别名。 stats.chi2.sf
应该改为使用。
scipy.stats.betai
已弃用。这是的别名 special.betainc
应该用它来代替。
向后不兼容的更改¶
功能 stats.trim1
和 stats.trimboth
现在确保修剪的元素是最低和/或最高的,具体取决于具体情况。以前在没有至少部分排序的情况下进行切片,但是对于未排序的输入没有意义。
什么时候 variable_names
设置为空列表, scipy.io.loadmat
现在可以正确地不返回值,而不是返回MAT文件的所有内容。
现在,稀疏矩阵的按元素相乘在所有情况下都会返回稀疏结果。以前,将稀疏矩阵与密集矩阵或数组相乘将返回密集矩阵。
该函数 misc.lena
由于许可证不兼容,已被删除。
的构造函数 sparse.coo_matrix
不再接受 (None, (m,n))
构造形状的全零矩阵 (m,n)
。至少从2007年起,该功能就被弃用了,并且在之前的SciPy版本中已经被破坏。使用 coo_matrix((m,n))
取而代之的是。
中的Cython包装器 linalg.cython_lapack
对于LAPACK例程 *gegs
, *gegv
, *gelsx
, *geqpf
, *ggsvd
, *ggsvp
, *lahrd
, *latzm
, *tzrqf
已删除,因为在新的LAPACK 3.6.0版本中不存在这些例程。除了例行公事之外 *ggsvd
和 *ggsvp
,这些都被弃用,取而代之的是我们的Cython LAPACK包装器中当前存在的例程。
因为LAPACK *gegv
LAPACK 3.6.0中删除了例程。中相应的Python包装器 scipy.linalg.lapack
现在已弃用,并将在将来的版本中删除。这些例程的源文件已临时包含在 scipy.linalg
以便可以针对不提供这些不推荐使用例程的LAPACK版本构建SciPy。
其他变化¶
Scipy开发版本的HTML和PDF文档现在会在每次合并的拉请求后自动重建。
scipy.constants
更新为CODATA 2014推荐值。
使用 scipy.fftpack
functions within Scipy has been changed in such a way that PyFFTW 可以轻松替换 scipy.fftpack
functions (with improved performance). See gh-5295 有关详细信息,请参阅。
这个 imread
中的函数 scipy.misc
和 scipy.ndimage
是统一的,为此 mode
参数已添加到 scipy.misc.imread 。此外,修复了1位和索引RGB图像格式的错误。
runtests.py
,构建和测试Scipy的开发脚本现在允许并行构建 --parallel
。