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 。