SciPy 0.18.0 发行说明#

SciPy 0.18.0 是 6 个月辛勤工作的结晶。它包含许多新功能、大量错误修复、改进的测试覆盖范围以及更好的文档。此版本中有一些弃用和 API 更改,详见下文。鼓励所有用户升级到此版本,因为其中包含大量的错误修复和优化。此外,我们的开发重心现在将转向 0.19.x 分支的错误修复发布,以及在主分支(master branch)上添加新功能。

此版本需要 Python 2.7 或 3.4-3.5,以及 NumPy 1.7.1 或更高版本。

此版本的亮点包括

新功能#

scipy.integrate 改进#

scipy.integrate.solve_bvp 中实现了一个用于 ODE 系统的两点边值问题求解器。该求解器允许非分离边界条件、未知参数和某些奇异项。它使用四阶配制算法(collocation algorithm)寻找 C1 连续解。

scipy.interpolate 改进#

现在可以通过 scipy.interpolate.CubicSpline 进行三次样条插值。该类表示一个通过给定点且 C2 连续的分段三次多项式。它在每个分段上以标准多项式基表示。

scipy.interpolate.NdPPoly 类提供了 n 维张量积分段多项式的表示。

单变量分段多项式类 PPolyBpoly 现在可以在周期域上进行求值。为此请使用 extrapolate="periodic" 关键字参数。

scipy.fftpack 改进#

scipy.fftpack.next_fast_len 函数为 FFTPACK 计算下一个“正则(regular)”数。将输入填充到此长度可以显著提高 scipy.fftpack.fft 的性能。

scipy.signal 改进#

使用多相滤波(polyphase filtering)的重采样已在 scipy.signal.resample_poly 函数中实现。该方法对信号进行上采样,应用零相位低通 FIR 滤波器,并使用 scipy.signal.upfirdn(这也是 0.18.0 中的新功能)进行下采样。对于某些信号,此方法比 scipy.signal.resample 提供的基于 FFT 的滤波更快。

增加了 scipy.signal.firls,它使用最小二乘误差最小化来构建 FIR 滤波器。

增加了 scipy.signal.sosfiltfilt,它执行类似于 scipy.signal.filtfilt 的前向-后向滤波,但针对的是二阶节(second-order sections)。

离散时间线性系统#

scipy.signal.dlti 提供了离散时间线性系统的实现。相应地,StateSpaceTransferFunctionZerosPolesGain 类增加了一个新关键字 dt,可用于创建相应系统表示的离散时间实例。

scipy.sparse 改进#

scipy.sparse 中的函数 summaxmeanmintransposereshape 的签名已增加了额外的参数和功能,从而提高了与 numpy 中类似定义的函数的兼容性。

稀疏矩阵现在有一个 count_nonzero 方法,用于计算矩阵中非零元素的数量。与返回存储条目数量(数据属性长度)的 getnnz()nnz 属性不同,此方法计算数据中实际的非零条目数量。

scipy.optimize 改进#

Nelder-Mead 最小化实现 scipy.minimize(…, method=”Nelder-Mead”) 获得了一个新关键字 initial_simplex,可用于指定优化过程的初始单纯形。

CG 和 BFGS 最小化器中的初始步长选择得到了改进。我们预计这一变化将在某些情况下提高优化的数值稳定性。详见合并请求 gh-5536。

SLSQP 优化中对无限边界的处理得到了改进。我们预计这一变化将在某些情况下提高优化的数值稳定性。详见合并请求 gh-6024。

scipy/benchmarks/go_benchmark_functions 中添加了一套大型全局优化基准测试。详见合并请求 gh-4191。

现在,只有在调用者未设置任何限制的情况下,Nelder-Mead 和 Powell 最小化才会为最大迭代次数或函数评估次数设置默认值。在某些收敛缓慢且仅设置了一个限制的情况下,最小化可能会比以前的版本持续更长时间,因此更有可能达到收敛。参见问题 gh-5966。

scipy.stats 改进#

梯形分布已实现为 scipy.stats.trapz。偏正态分布已实现为 scipy.stats.skewnorm。Burr XII 型分布已实现为 scipy.stats.burr12。三参数和四参数 kappa 分布已分别实现为 scipy.stats.kappa3scipy.stats.kappa4

新的 scipy.stats.iqr 函数用于计算分布的四分位距。

随机矩阵#

scipy.stats.special_ortho_groupscipy.stats.ortho_group 分别提供了 SO(N) 和 O(N) 群中的随机矩阵生成器。它们生成 Haar 分布中的矩阵,这是这些群流形上唯一的均匀分布。

scipy.stats.random_correlation 提供了一个给定指定特征值的随机相关矩阵生成器。

scipy.linalg 改进#

scipy.linalg.svd 获得了一个新的关键字参数 lapack_driver。可用的驱动程序有 gesdd(默认)和 gesvd

scipy.linalg.lapack.ilaver 返回 SciPy 链接的 LAPACK 库版本。

scipy.spatial 改进#

布尔距离(Boolean distances)计算函数 scipy.spatial.pdist 已加速。改进程度因函数和输入大小而异。在许多情况下,可以预期 2 到 10 倍的加速。

新类 scipy.spatial.SphericalVoronoi 在球面表面构建 Voronoi 图。详见合并请求 gh-5232。

scipy.cluster 改进#

一种新的聚类算法——最近邻链算法(nearest neighbor chain algorithm),已在 scipy.cluster.hierarchy.linkage 中实现。因此,对于几种联动方法,可以预期显著的算法改进(从 \(O(N^3)\) 优化为 \(O(N^2)\))。

scipy.special 改进#

新函数 scipy.special.loggamma 计算 Gamma 函数对数的主分支。对于实数输入,loggammascipy.special.gammaln 兼容。对于复数输入,它在复平面上的行为更一致,应优先于 gammaln 使用。

球面贝塞尔函数的向量化形式已实现为 scipy.special.spherical_jnscipy.special.spherical_knscipy.special.spherical_inscipy.special.spherical_yn。建议使用它们来替代现已弃用的 sph_* 函数。

几个特殊函数已扩展到复数域和/或在定义域/稳定性方面得到了改进。这包括 spencedigammalog1p 和其他几个函数。

已弃用的功能#

lti 系统的跨类属性已被弃用。以下属性/设置器将引发 DeprecationWarning

名称 - (访问/设置引发警告) - (设置引发警告) * StateSpace - (num, den, gain) - (zeros, poles) * TransferFunction (A, B, C, D, gain) - (zeros, poles) * ZerosPolesGain (A, B, C, D, num, den) - ()

球面贝塞尔函数 sph_insph_jnsph_knsph_ynsph_jnynsph_inkn 已被弃用,建议改用 scipy.special.spherical_jn 以及 spherical_knspherical_ynspherical_in

scipy.constants 中的以下函数已被弃用:C2KK2CC2FF2CF2KK2F。它们被新函数 scipy.constants.convert_temperature 所取代,该函数可以执行所有这些转换以及兰金(Rankine)温标的相互转换。

向后不兼容的变更#

scipy.optimize#

optimize.bisectoptimize.brentqoptimize.brenthoptimize.ridder 的收敛准则现在与 numpy.allclose 的工作方式相同。

scipy.ndimage#

ndimage.interpolation.affine_transform 中的偏移量(offset)现在始终在应用矩阵之后添加,无论矩阵是使用一维还是二维数组指定的。

scipy.stats#

如果输入不是实数或包含 NaN,stats.ks_2samp 过去会返回无意义的值。现在对于此类输入,它会引发异常。

scipy.stats 分布的几个弃用方法已被移除:est_loc_scalevecfuncveccdfvec_generic_moment

scipy.stats 中已移除弃用的函数 nanmeannanstdnanmedian。这些函数在 scipy 0.15.0 中已被弃用,建议改用它们的 numpy 等效函数。

scipy.stats 分布中 rvs() 方法的一个错误已修复。当为 rvs() 提供用于广播(broadcasting)的参数时,在许多情况下返回的随机样本并不随机。该问题的一个简单例子是 stats.norm.rvs(loc=np.zeros(10))。由于该错误,该调用将返回 10 个相同的值。此错误仅影响依赖于形状、位置和比例参数广播的代码。

rvs() 方法以前还接受一些它不应该接受的参数。在 rvs() 接受实际上与广播不兼容的参数的情况下,可能会存在向后不兼容的可能性。一个例子是

stats.gamma.rvs([2, 5, 10, 15], size=(2,2))

第一个参数的形状与请求的大小不兼容,但该函数仍然返回了一个形状为 (2, 2) 的数组。在 scipy 0.18 中,该调用将生成 ValueError

scipy.io#

如果同时给出了 _FillValuemissing_value 属性,scipy.io.netcdf 掩码现在优先使用 _FillValue 属性。此外,只有当数据与这些属性之一完全匹配时,才会被视为缺失:与 _FillValuemissing_value 存在舍入误差的值不再被视为缺失值。

scipy.interpolate#

scipy.interpolate.PiecewisePolynomial 类已被移除。它在 scipy 0.14.0 中已被弃用,scipy.interpolate.BPoly.from_derivatives 可以作为直接替代品。

其他更改#

Scipy 现在使用 setuptools 进行构建,而不是纯粹的 distutils。这修复了依赖于 Scipy 的项目在 setup.py 文件中使用 install_requires='scipy' 的问题(详见 Numpy 问题 gh-6551)。这可能会影响 Scipy 自身的构建/安装方法。请在 Scipy 问题追踪器上报告任何异常行为。

PR #6240 更改了 scipy.optimize 模块中基于 L-BFGS-B 的例程对 maxfun 选项的解释。一个 L-BFGS-B 搜索由多次迭代组成,每次迭代包含一次或多次函数评估。旧策略在达到 maxfun 次函数评估后立即终止,而新策略允许当前迭代在达到 maxfun 后完成。

scipy.spatial 子包中捆绑的 Qhull 已升级到 2015.2 版本。

scipy.sparse.linalg 子包中捆绑的 ARPACK 已升级到 arpack-ng 3.3.0。

scipy.sparse 子包中捆绑的 SuperLU 已升级到 5.1.1 版本。

作者#

  • @endolith

  • @yanxun827 +

  • @kleskjr +

  • @MYheavyGo +

  • @solarjoe +

  • Gregory Allen +

  • Gilles Aouizerate +

  • Tom Augspurger +

  • Henrik Bengtsson +

  • Felix Berkenkamp

  • Per Brodtkorb

  • Lars Buitinck

  • Daniel Bunting +

  • Evgeni Burovski

  • CJ Carey

  • Tim Cera

  • Grey Christoforo +

  • Robert Cimrman

  • Philip DeBoer +

  • Yves Delley +

  • Dávid Bodnár +

  • Ion Elberdin +

  • Gabriele Farina +

  • Yu Feng

  • Andrew Fowlie +

  • Joseph Fox-Rabinovitz

  • Simon Gibbons +

  • Neil Girdhar +

  • Kolja Glogowski +

  • Christoph Gohlke

  • Ralf Gommers

  • Todd Goodall +

  • Johnnie Gray +

  • Alex Griffing

  • Olivier Grisel

  • Thomas Haslwanter +

  • Michael Hirsch +

  • Derek Homeier

  • Golnaz Irannejad +

  • Marek Jacob +

  • InSuk Joung +

  • Tetsuo Koyama +

  • Eugene Krokhalev +

  • Eric Larson

  • Denis Laxalde

  • Antony Lee

  • Jerry Li +

  • Henry Lin +

  • Nelson Liu +

  • Loïc Estève

  • Lei Ma +

  • Osvaldo Martin +

  • Stefano Martina +

  • Nikolay Mayorov

  • Matthieu Melot +

  • Sturla Molden

  • Eric Moore

  • Alistair Muldal +

  • Maniteja Nandana

  • Tavi Nathanson +

  • Andrew Nelson

  • Joel Nothman

  • Behzad Nouri

  • Nikolai Nowaczyk +

  • Juan Nunez-Iglesias +

  • Ted Pudlik

  • Eric Quintero

  • Yoav Ram

  • Jonas Rauber +

  • Tyler Reddy +

  • Juha Remes

  • Garrett Reynolds +

  • Ariel Rokem +

  • Fabian Rost +

  • Bill Sacks +

  • Jona Sassenhagen +

  • Kari Schoonbee +

  • Marcello Seri +

  • Sourav Singh +

  • Martin Spacek +

  • Søren Fuglede Jørgensen +

  • Bhavika Tekwani +

  • Martin Thoma +

  • Sam Tygier +

  • Meet Udeshi +

  • Utkarsh Upadhyay

  • Bram Vandekerckhove +

  • Sebastián Vanrell +

  • Ze Vinicius +

  • Pauli Virtanen

  • Stefan van der Walt

  • Warren Weckesser

  • Jakub Wilk +

  • Josh Wilson

  • Phillip J. Wolfram +

  • Nathan Woods

  • Haochen Wu

  • G Young +

共有 99 人为本版本做出了贡献。名字旁边带有“+”号的人是第一次贡献补丁。此名单是自动生成的,可能不完全详尽。

0.18.0 版本已关闭的问题#

  • #1484: 使用 *GESVD lapack 驱动程序的 SVD (Trac #957)

  • #1547: ndimage.interpolation.affine_transform() 中偏移量(offset)的使用不一致……

  • #1609: special.hyp0f1 返回 nan (Trac #1082)

  • #1656: fmin_slsqp 增强 (Trac #1129)

  • #2069: rvs 中的 stats 广播 (Trac #1544)

  • #2165: sph_jn 对于某些阶数/值返回错误结果 (Trac #1640)

  • #2255: affine_transform 中平移和旋转的顺序不正确……

  • #2332: hyp0f1 参数和返回值不符合 numpy 风格 (Trac #1813)

  • #2534: uint8 类型的稀疏 .sum() 方法表现不符合预期……

  • #3113: 为 CSPHJY, SPHJ, SPHY, CSPHIK, SPHI, SPHIK 实现 ufuncs……

  • #3568: SciPy 0.13.3 - CentOS5 - test_arpack 错误

  • #3581: optimize: fmin_bfgs 中的步长“不良”

  • #4476: scipy.sparse 非原生字节序错误

  • #4484: optimize.fmin 中的 ftol 无法工作

  • #4510: sparsetools.cxx call_thunk 可能会因越界而崩溃……

  • #5051: _minimize_neldermead 的 ftol 和 xtol 是绝对值而非……

  • #5097: 提案:球面 Voronoi 图

  • #5123: 传递 Cython 类型变量时调用 scipy.sparse.coo_matrix 失败……

  • #5220: scipy.cluster.hierarchy.{ward,median,centroid} 不工作……

  • #5379: 在 .travis.yml 的末尾添加一个构建步骤,上传可用的……

  • #5440: scipy.optimize.basinhopping: accept_test 返回 numpy.bool_……

  • #5452: 使用变量积分时 scipy.integrate.nquad 报错……

  • #5520: 无法正确继承 csr_matrix

  • #5533: Kendall tau 实现使用 Python 归并排序

  • #5553: stats.tiecorrect 溢出

  • #5589: 在 stats 中添加 XII 型 Burr 分布。

  • #5612: 由于默认设置,sparse.linalg 对小 k 的分解缓慢……

  • #5626: io.netcdf 掩码应使用 masked_equal 而非 masked_value

  • #5637: 简单的三次样条插值?

  • #5683: 错误:Akima1DInterpolator 在多维……情况下可能返回 nan

  • #5686: scipy.stats.ttest_ind_from_stats 不接受数组

  • #5702: scipy.ndimage.interpolation.affine_transform 缺少文档……

  • #5718: cdist 中加权闵可夫斯基(minkowski)距离的计算错误

  • #5745: 下一版本迁移到 setuptools

  • #5752: 文档:solve_discrete_lyapunov 方程的转置位置错误……

  • #5760: signal.ss2tf 无法处理零阶状态空间模型

  • #5764: 超几何函数 hyp0f1 对于复数……表现不正确

  • #5814: stats NaN 策略错误消息与代码不一致

  • #5833: stats.binom_test() 的文档字符串需要更新

  • #5853: 形状为 (1,1) 的复数矩阵在 scipy.linalg.expm 中的错误

  • #5856: 指定 Nelder-Mead 初始单纯形

  • #5865: scipy.linalg.expm 对某些 numpy 矩阵失败

  • #5915: optimize.basinhopping - 变量在赋值前被引用。

  • #5916: LSQUnivariateSpline 拟合在使用生成的节点时失败……

  • #5927: scipy.stats.binned_statistic_dd 中 unicode 与字符串的比较

  • #5936: 更快的 ks_2samp 实现

  • #5948: csc 矩阵 .mean 返回单元素矩阵而非标量

  • #5959: 错误:使用 lgmres 时 root 优化测试错误

  • #5972: 32 位 Python 上稀疏求和测试失败

  • #5976: 使用 0 x 0 矩阵时 scipy.sparse.bmat 出现异常异常

  • #6008: scipy.special.kl_div 在 0.14.1 中不可用

  • #6011: von-Mises 熵损坏

  • #6016: 处理某些大型……时 linalg.interpolative.svd 导致 python 崩溃

  • #6017: 使用 zero_method=”pratt” 或 “zsplit” 的 Wilcoxon 符号秩检验……

  • #6028: stats.distributions 没有梯形分布

  • #6035: f_oneway 中的错误链接

  • #6056: 错误:signal.decimate 应仅接受离散 LTI 对象

  • #6093: 使用 openblas 的 32 位 Linux 上的精度错误

  • #6101: 32 位 Linux, Python3 上重心变换测试错误

  • #6105: scipy.misc.face 文档字符串不正确

  • #6113: scipy.linalg.logm 对于平凡矩阵失败

  • #6128: 稀疏 COO 数组 dot 方法在与 numpy 一起使用时的错误……

  • #6132: 在最新 MKL 上失败

  • #6136: master 分支在 MKL 上失败

  • #6162: fmin_l_bfgs_b 返回不一致的结果 (fmin ≠ f(xmin)) 且……

  • #6165: optimize.minimize 在 Newton-CG 下死循环

  • #6167: 对包含边界值的数据进行不正确的分布拟合。

  • #6194: lstsq() 等函数将 numpy.complex256 检测为实数

  • #6216: 增强:提高 bradford 的 ppf cdf 往返准确性

  • #6217: 错误:weibull_min.logpdf 对于 c=1 和 x=0 返回 nan

  • #6218: 是否有方法限制最短路径搜索距离?

  • #6222: PchipInterpolator 不再处理 2 元素数组

  • #6226: 增强:提高 logistic.ppf 和 logistic.isf 的准确性

  • #6227: 增强:提高 rayleigh.logpdf 和 rayleigh.logsf 的准确性……

  • #6228: 增强:提高 gumbel_l 的 ppf cdf 往返准确性

  • #6235: 错误:alpha.pdf 和 alpha.logpdf 对于 x=0 返回 nan

  • #6245: 增强:提高 invgamma 的 ppf-cdf 和 sf-isf 往返准确性

  • #6263: 错误:stats: multivariate_normal 文档字符串中的不一致

  • #6292: test_sparsetools.TestInt32Overflow 中 Python 3 不可排序类型错误

  • #6316: TestCloughTocher2DInterpolator.test_dense 在 python3.5.2rc1_64bit……崩溃

  • #6318: Scipy interp1d ‘nearest’ 对 x 轴高值失效

0.18.0 版本的合并请求(Pull requests)#

  • #3226: 文档:将 nbna 更改为传统的 m 和 n

  • #3867: 允许 cKDTree.query 接受列表作为 k 的输入。

  • #4191: 增强:全局优化器基准测试

  • #4356: 增强:为求解 p(x) == y 添加 PPoly.solve(y)

  • #4370: 文档:分离布尔距离函数以求清晰

  • #4678: 错误:sparse: 确保索引 dtype 足够大,能传递所有参数……

  • #4881: scipy.signal: 为线性离散时间系统添加 dlti 类……

  • #4901: 维护:添加基准测试并改进 signal.lfilter 的文档字符串

  • #5043: 增强:sparse: 添加 count_nonzero 方法

  • #5136: 将 kurtosistest() 归功于 Anscombe & Glynn (1983)

  • #5186: 增强:移植 upfirdn

  • #5232: 增强:在 scipy.spatial 中添加球面 Voronoi 图算法

  • #5279: 增强:不同归一化、高阶的贝塞尔滤波器

  • #5384: 错误:解决 #5027 距离函数总是将 bool 转换为 double 的问题

  • #5392: 增强:为 signal.decimate 添加 zero_phase 关键字参数

  • #5394: 维护:sparse: 非规范化测试清理和修复

  • #5424: 文档:添加 Scipy 开发指南

  • #5442: 样式:PEP8 修正

  • #5472: LGMRES 中的在线 QR 分解

  • #5526: 错误:stats: 修复分布中 rvs() 方法的广播问题。

  • #5530: 维护:sparse: 明确设置 format 属性

  • #5536: optimize: 修复 cg/bfgs 初始步长

  • #5548: 性能:改进 stats.kendalltau 的性能

  • #5549: 增强:层次聚类的最近邻链算法

  • #5554: 维护/错误:关闭 stats.tiecorrect 中的溢出错误

  • #5557: 错误:修改 optimize.bisect 以达到所需容差

  • #5581: 文档:least_squares 教程

  • #5606: 增强:differential_evolution - 移动 solve 方法的核心循环……

  • #5609: [MRG] 对 numpy 开发版进行测试

  • #5611: 为 bdist_egg 发行版使用 setuptools

  • #5615: 维护:linalg: 收紧 _decomp_update + special: 移除未使用的……

  • #5622: 添加 SO(N) 旋转矩阵生成器

  • #5623: 增强:special: 添加向量化球面贝塞尔函数。

  • #5627: 对问题 #5160 的回应,实现了偏正态分布……

  • #5628: 文档:对齐描述和操作

  • #5632: 文档:special: 扩展了 Airy、椭圆、贝塞尔函数的文档。

  • #5633: 维护:linalg: _decomp_update 中未检查的 malloc

  • #5634: 维护:optimize: 收紧 _group_columns

  • #5640: io.netcdf 掩码修复

  • #5645: 维护:cKDTree 范围查询中大小为 0 的向量处理

  • #5649: 维护:更新许可文本

  • #5650: 文档:澄清 ltisys.py 中的指数顺序

  • #5651: 文档:澄清 scipy.special.gammaln 的文档

  • #5652: 文档:修复 scipy.special.betaln 文档

  • #5653: [MRG] 增强:CubicSpline 插值器

  • #5654: 增强:在 stats 模块中添加 Burr12 分布

  • #5660: 文档:在 runtests.py -h 中为 bench-compare 定义 BEFORE/AFTER

  • #5660: 维护:移除 0.16.0 之前弃用的函数

  • #5662: 增强:圆形统计(Circular statistic)优化

  • #5663: 维护:移除 np.testing.rand 的使用

  • #5665: 维护:spatial: 移除匹配的距离实现

  • #5667: 将部分 HTTP 链接更改为 HTTPS

  • #5669: 文档:zpk2sos 无法处理模拟、类数组等。

  • #5670: 更新 conf.py

  • #5672: 维护:将示例分布移动到 rv_discrete 的子类中

  • #5678: 维护:stats: 移除 est_loc_scale 方法

  • #5679: 维护:简化离散分布的通用计算

  • #5680: 维护:停止在 stats.distributions 中遮蔽内置函数

  • #5681: 前向移植 增强:重新启用 fill_value 的广播

  • #5684: 错误:修复 Akima1DInterpolator 返回 nan 的问题

  • #5690: 错误:修复 stats.ttest_ind_from_stats 以处理数组。

  • #5691: 错误:修复 io._loadarff 中的生成器以符合 PEP 0479

  • #5693: 增强:对精确阶乘使用 math.factorial

  • #5695: 文档:dx 可能是浮点数,而不仅是整数

  • #5699: 维护:io: 为节省空间而对 Matlab 读取代码进行微调

  • #5701: 实现 OptimizeResult.__dir__

  • #5703: 增强:stats: 在 probplot 中使 R² 打印可选

  • #5704: 维护:拼写错误 ouf->out

  • #5705: 错误:修复 query_pairs 中的拼写错误

  • #5707: 文档:在 scipy.optimize.fmin 中添加对 ftol xtol 的一些解释

  • #5708: 文档:optimize: PEP8 化 minimize 文档字符串

  • #5709: 维护:优化 Cython 代码的速度和大小

  • #5713: [文档] 修复断开的参考链接

  • #5717: 文档:curve_fit 在失败时引发 RuntimeError。

  • #5724: 前向移植 gh-5720

  • #5728: 样式:移除空行

  • #5729: 增强:spatial: 加速布尔距离计算

  • #5732: 维护:differential_evolution 对默认关键字的更改破坏了……

  • #5733: 测试:differential_evolution - 种群初始化测试

  • #5736: log1p, expm1, 和 xlog1py 支持复数

  • #5741: 维护:sparse: 清理提取函数

  • #5742: 文档:signal: 在 get_window 中解释 fftbins

  • #5748: 增强:添加 O(N) 随机矩阵生成器

  • #5749: 增强:添加多相重采样

  • #5756: RFC: 提升最低 numpy 版本,放弃旧 Python 版本

  • #5761: 文档:最小二乘文档字符串的一些改进

  • #5762: 维护:spatial: 距离重构

  • #5768: 文档:修复 io.loadmat 对于 mdict 参数的文档字符串

  • #5770: 错误:允许 sparse.random 接受 np.dtype 能处理的任何类型

  • #5772: 更新 sparse.csgraph.laplacian 文档字符串

  • #5777: 错误:修复 special.hyp0f1 以使其在复数输入下正确工作。

  • #5780: 文档:更新 PIL 错误安装 URL

  • #5781: 文档:修复 solve_discrete_lyapunov 的文档

  • #5782: 文档:cKDTree 和 KDTree 现在互相引用

  • #5783: 文档:澄清 scipy.optimize.brute 的完成行为

  • #5784: 维护:将 least_squares 的默认容差改为 1e-8

  • #5787: 错误:允许 signal.ss2tf 处理零阶状态空间模型

  • #5788: 文档、错误:澄清并强制‘数据’对象的输入类型

  • #5789: 增强:sparse: 加速 LIL 矩阵切片(原 #3338)

  • #5791: 文档:README: 移除 coveralls.io

  • #5792: 维护:移除已弃用的 np.random.random_integers 的使用

  • #5794: 修复 affine_transform(修复 #1547 和 #5702)

  • #5795: 文档:从 kmeans2 文档中移除 uniform 方法

  • #5797: 文档:澄清加权闵可夫斯基的计算

  • #5798: 错误:确保 scipy 的 _asfarray 返回 ndarray

  • #5799: 测试:Mpmath 测试补丁

  • #5801: 允许读取某些 IDL 8.0 .sav 文件

  • #5803: 文档:修复错误消息中的模块名称

  • #5804: 文档:special: 扩展了特殊函数的文档。

  • #5805: 文档:修复 _spectral_helper 中的返回顺序

  • #5806: 增强:sparse: 向量化的 coo_matrix.diagonal

  • #5808: 增强:在 scipy/stats/stats.py 中添加用于计算 IQR 指标的 iqr 函数

  • #5810: 维护/基准测试:sparse: 基准测试清理和增加

  • #5811: 文档:sparse.linalg: 是形状(shape),而非大小(size)

  • #5813: 更新稀疏 ARPACK 函数的最小 ncv

  • #5815: 错误:错误消息包含错误的值

  • #5816: 移除 stats 测试中的死代码

  • #5820: order_filter 文档字符串中的“in”->“a”

  • #5821: 文档:README: INSTALL.txt 在 2014 年已重命名

  • #5825: 文档:least_squares 文档字符串中的拼写错误

  • #5826: 维护:sparse: 增加测试覆盖范围

  • #5827: NdPPoly 变基

  • #5828: 提高大阶数下 hyp0f1 的数值稳定性

  • #5829: 增强:sparse: 为稀疏……中所有 .toXXX() 方法添加 copy 参数

  • #5830: 文档:重做 INSTALL.rst.txt

  • #5831: 为 voronoi_plot_2d 增加绘图选项

  • #5834: 更新 stats.binom_test() 文档字符串

  • #5836: 增强、测试:允许 tf2ss 处理 SIMO tf

  • #5837: 文档:图像示例

  • #5838: 增强:sparse: 为 coo_matrix 添加 eliminate_zeros()

  • #5839: 错误:修复 NumpyVersion.__repr__ 的名称

  • #5845: 维护:修复文档中的拼写错误

  • #5847: 修复 sparsetools 中的错误

  • #5848: 错误:sparse.linalg: 添加锁以确保 ARPACK 线程安全

  • #5849: 增强:sparse.linalg: 升级到 superlu 5.1.1

  • #5851: 增强:将 lapack 的 ilaver 暴露给 python 以允许检测 lapack 版本……

  • #5852: 维护:runtests.py: 确保 Ctrl-C 能中断构建

  • #5854: 文档:文档微调

  • #5855: Pr 5640

  • #5859: 增强:添加随机相关矩阵生成器

  • #5862: 错误:允许对形状为 (1, 1) 的复数矩阵进行 expm

  • #5863: 修复:修复测试

  • #5864: 文档:添加关于正态生存函数 (Q-function) 的简短注释

  • #5867: 对 #5865 的修复

  • #5869: 将正态分布 cdf 扩展到复数域

  • #5872: 文档:指出 morlet 和 cwt 不能一起工作

  • #5875: 文档:interp2d 类描述

  • #5876: 维护:spatial: 移除一条遗留的打印语句

  • #5878: 维护:修复 ndimage 测试中嘈杂的 UserWarnings。修复 #5877

  • #5879: 维护:sparse.linalg/superlu: 添加显式转换以解决编译器……

  • #5880: 维护:signal: 在……时从 math 而非 fractions 导入 gcd

  • #5887: Neldermead 初始单纯形

  • #5894: 错误:_CustomLinearOperator 在 python3.5 中无法进行 pickle

  • #5895: 文档:special: 稍微改进 multigammaln 的文档字符串

  • #5900: 移除重复赋值。

  • #5901: 更新捆绑的 ARPACK

  • #5904: 增强:使 convolve 和 correlate 与顺序无关

  • #5905: 增强:sparse.linalg: 进一步清理 LGMRES

  • #5906: scipy.integrate 的增强和清理(第 2 次尝试)

  • #5907: 增强:更改稀疏 summean 的类型转换以匹配……

  • #5909: 卷积对称性的更改

  • #5913: 维护:移除 basinhopping 的实例测试,关闭 #5440

  • #5919: 维护:修复 basinhopping 在 niter=0 时变量未初始化的问题。关闭 #5915

  • #5920: 构建:修复 MKL 缺失 lsame.c 的错误

  • #5921: 文档:interpolate:添加展示如何解决该问题的示例……

  • #5926: 维护:spatial:升级至 Qhull 2015.2

  • #5928: 维护:sparse:优化 DIA 的求和/对角线、csgraph.laplacian

  • #5929: 更新 octave-maintainers 讨论的信息/URL

  • #5930: 测试:special:静默 sph_yn 的 DeprecationWarnings

  • #5931: 增强:实现 Gamma 函数对数的主分支。

  • #5934: 拼写错误:“mush” => “must”

  • #5935: 错误:stats._binned_statistic 中的字符串比较问题。关闭 #5927

  • #5938: 对 stats.ks_2samp 进行 Cython 化,获得约 33% 的速度提升。

  • #5939: 文档:修复 optimize.fmin 收敛部分的文档字符串

  • #5941: 修复 squareform 文档字符串中的微小拼写错误

  • #5942: 更新 linregress 标准差 (stderr) 的描述。

  • #5943: 增强:提高 lognorm 的数值精度

  • #5944: 将 vonmises 合并进 stats pyx

  • #5945: 维护:interpolate:调整声明以避免 Cython 警告……

  • #5946: 维护:sparse:清理格式转换方法

  • #5949: 错误:修复稀疏矩阵的 .mean 使其返回标量而非矩阵

  • #5955: 维护:将对 hanning 的调用替换为 hann

  • #5956: 文档:缺失的句号干扰了解析

  • #5958: 维护:为 lognorm.sf 下溢添加测试

  • #5961: 维护 _centered():将 size 重命名为 shape

  • #5962: 增强:constants:添加多温标温度转换函数

  • #5965: 增强:special:在 exact=True 时计算 comb() 的更快方法

  • #5975: 增强:改进 signal.decimate 的 FIR 路径

  • #5977: 维护/错误:sparse:移除过度严格的 bmat 检查

  • #5978: minimize_neldermead() 在用户要求的 maxiter 或 maxfev 时停止

  • #5983: 增强:使稀疏矩阵的 sum 在 32 位系统上像 NumPy sum 一样进行数据类型转换……

  • #5985: 错误,API:为 curve_fit 添加 jac 参数

  • #5989: 增强:添加 firls 最小二乘拟合

  • #5990: 错误:尝试处理 20 位 WAV 文件,但实际上不应该处理

  • #5991: 文档:清理 wav 读/写文档并为常用类型添加表格

  • #5994: 增强:为 svd 添加 gesvd 方法

  • #5996: 维护:Wave 模块清理

  • #5997: 测试:拆分 upfirdn 测试并与 lfilter 进行对比

  • #6001: 滤波器设计文档

  • #6002: 兼容性:扩展 fromnumeric.py 的兼容性

  • #6007: 增强:在 freqresp 中跳过从 TF 到 TF 的转换

  • #6009: 文档:修复 entr, rel_entr, kl_div 错误的 versionadded 信息

  • #6013: 修复了 von Mises 分布的熵计算。

  • #6014: 维护:使 gamma, rgamma 在复参数时使用 loggamma

  • #6020: WIP:增强:为向量添加 exact=True 的阶乘计算

  • #6022: 在图像插值函数列表中添加了 ‘lanczos’。

  • #6024: 错误:optimize:在没有……时,SLSQP 不使用虚拟约束

  • #6025: 增强:常微分方程组的边值问题 (BVP) 求解器

  • #6029: 维护:为 optimize._lsq 添加 Future imports

  • #6030: 增强:stats.trap - 添加梯形分布。关闭 #6028

  • #6031: 维护:对 optimize._numdiff 的一些改进

  • #6032: 维护:将 special/_comb.c 添加至 .gitignore

  • #6033: 错误:检查 interpolative.svd 中请求的近似秩

  • #6034: 文档:修正了 stats.py 中 mannwhitneyu 的文档

  • #6040: 修复:修改 f_oneway 中错误的链接

  • #6044: 错误:(ordqz) 总是将参数 lwork 增加 1。

  • #6047: 增强:将 special.spence 扩展至复参数。

  • #6049: 文档:将 PR #5640 的文档添加到 0.18.0 版本说明中

  • #6050: 维护:与 loggamma 相关的细微清理

  • #6070: 在 wilcoxon 中添加 asarray 以显式将列表转换为 numpy 数组……

  • #6071: 文档:抗混叠滤波器及 decimate, resample 等的链接。

  • #6075: 维护:为复参数重新实现 special.digamma

  • #6080: 避免 kstest 中的多次计算

  • #6081: 明确了 Pearson 相关系数的返回值

  • #6085: 增强:允许 spsolve() 中 umfpack 的稀疏矩阵长索引

  • #6086: 修复关联拉盖尔多项式的描述

  • #6087: 修正了 splrep 的文档字符串。

  • #6094: 增强:special:将 zeta 签名更改为 zeta(x, q=1)

  • #6095: 错误:修复 special.spence 中的整数溢出

  • #6106: 修复问题 #6105

  • #6116: 错误:矩阵对数的边缘情况

  • #6119: 测试:Python 3.5 上 stats 中的 DeprecationWarnings。关闭 #5885

  • #6120: 维护:sparse:清理 sputils.isintlike

  • #6122: 文档:optimize:linprog 文档应说明是 minimize 而非 maximize

  • #6123: 文档:optimize:记录 scipy.optimize.OptimizeResult 中的 fun 字段

  • #6124: 将 FFT 零填充计算从 signaltools 移至 fftpack

  • #6125: 维护:改进 a ~ x 范围内的 special.gammainc。

  • #6130: 错误:sparse:修复带零列的 COO 点积

  • #6138: 增强:stats:改进 genextreme.sf 和 genextreme.isf 的行为

  • #6146: 维护:简化 expit 的实现

  • #6151: 维护:special:使 generate_ufuncs.py 的输出确定化

  • #6152: 测试:special:对大参数下的 gammainc 进行更好的测试

  • #6153: 增强:使 next_fast_len 公开且更快

  • #6154: 修复拼写错误 “mush”-->”must”

  • #6155: 文档:修复一些不正确的 RST 定义列表

  • #6160: 使 logsumexp 在掩码数组(masked array)上报错

  • #6161: 在 rosen 文档中添加了缺失的括号

  • #6163: 增强:添加了 “kappa4” 和 “kappa3” 分布。

  • #6164: 文档:integrate._bvp 中的微小清理

  • #6169: 修复 mpf_assert_allclose 以处理可迭代结果(如 maps)

  • #6170: 修复 pchip_interpolate 便利函数

  • #6172: 修正了文档字符串中位置错误的括号

  • #6175: 增强:sparse.csgraph:向 shortest_path 传递索引

  • #6178: 测试:增加广义极值分布的 sf 和 isf 测试覆盖率……

  • #6179: 测试:避免来自 numpy 的弃用警告

  • #6181: 增强:CubicSpline 的边界条件

  • #6182: 文档:在 max_len_seq 中添加示例/图表

  • #6183: 构建:针对近期更改更新 Bento 构建配置文件。

  • #6184: 错误:修复 io/wavfile 在 float96 输入时的问题。

  • #6186: 增强:PPoly 和 BPoly 的周期性外推

  • #6192: 合并:添加 circle-CI

  • #6193: 增强:sparse:避免 setitem 导致稠密化

  • #6196: 修复了 cdist 中 Mahalanobis 距离文档字符串缺失的平方根……

  • #6206: 维护:solve_bvp 的微小改动

  • #6207: 错误:linalg:对于 BLAS,将 complex256 降级为 complex128,而不是……

  • #6209: 错误:io.matlab:避免 read_element_into 中的缓冲区溢出

  • #6210: 构建:构建时使用 setuptools。

  • #6214: 错误:sparse.linalg:修复 LGMRES 崩溃处理中的错误

  • #6215: 维护:special:使 loggamma 使用 zdiv

  • #6220: 文档:添加参数

  • #6221: 增强:改进 solve_bvp 的 Newton 求解器

  • #6223: pchip 应适用于长度为 2 的数组

  • #6224: signal.lti:弃用跨类属性/setter

  • #6229: 错误:optimize:避免 Newton-CG 中的无限循环

  • #6230: 添加高斯滤波器应用的示例

  • #6236: 维护:gumbel_l 的精度

  • #6237: 维护:瑞利分布 (rayleigh) 的精度

  • #6238: 维护:逻辑分布 (logistic) 的精度

  • #6239: 维护:Bradford 分布的精度

  • #6240: 维护:避免 l-bfgs-b 由于 maxfun 中断导致错误的 fmin

  • #6241: 维护:weibull_min 的精度

  • #6246: 增强:向分布添加 _support_mask

  • #6247: 修复了一个 ode 示例的打印错误

  • #6249: 维护:将 stats.probplot 的 x 轴标签更改为 “theoretical……

  • #6250: 文档:修复拼写错误

  • #6251: 维护:constants:过滤掉弃用转换产生的测试噪声

  • #6252: 维护:io/arff:移除未使用的变量

  • #6253: 在 scipy.ndimage.filters 中添加示例

  • #6254: 维护:special:修复一些构建警告

  • #6258: 维护:逆 Gamma 分布的精度

  • #6260: 维护:signal.decimate - 使用离散时间对象

  • #6262: 错误:odr:修复字符串格式化

  • #6267: 测试:修复 interpolate 和 stats 中的一些测试问题。

  • #6269: 测试:修复测试套件中的一些警告

  • #6274: 增强:添加 sosfiltfilt

  • #6276: 文档:更新 0.18.0 版本的发布说明

  • #6277: 维护:更新作者名称映射

  • #6282: 文档:修正 scipy.stats.normaltest 的引用

  • #6283: 文档:0.18.0 版本说明的一些补充。

  • #6284: 在 loggamma 中添加 versionadded:: 指令。

  • #6285: 错误:stats:multivariate_normal 文档字符串中的不一致……

  • #6290: 在 0.18.0 版本说明中添加作者列表和 gh 列表

  • #6293: 测试:special:放宽一个测试的精度要求

  • #6295: 错误:sparse:停止在 bsr_matrix 构造函数中比较 None 和 int

  • #6313: 维护:修复 Python 3.5 travis-ci 的构建问题。

  • #6327: 测试:signal:在测试中使用 assert_allclose 来测试近似相等……

  • #6330: 错误:spatial/qhull:通过 malloc 分配 qhT 以确保 CRT 兼容……

  • #6332: 测试:修复 stats.iqr 测试以避免发出警告,并修正行宽。

  • #6334: 维护:special:修复 hyp0f1 的测试

  • #6347: 测试:spatial.qhull:在 32 位平台上跳过一个测试

  • #6350: 错误:optimize/slsqp:不要越界覆盖数组

  • #6351: 错误:修复了 #6318 Interp1d ‘nearest’ 整数 x 轴溢出问题

  • #6355: 0.18.0 的向后移植 (Backports)