SciPy 1.0.0 发行说明#

我们非常高兴地宣布 SciPy 1.0 版本发布,这是自 0.1 版本问世以来的第 16 个年头。走到这一步,我们经历了漫长而富有成效的旅程,并且我们期待未来会有更多激动人心的新功能和发布。

为何现在是 1.0 版本?#

版本号应该反映项目的成熟度——SciPy 长期以来一直是一个成熟且稳定的库,在生产环境中被广泛使用。从这个角度来看,1.0 版本号早就应该发布了。

项目的一些关键目标,包括技术方面(例如 Windows wheel 包和持续集成)和组织方面(治理结构、行为准则和路线图),最近都已实现。

我们中的许多人有点完美主义,因此不愿将某个东西称为“1.0”,因为它可能意味着“已完成”或“我们 100% 满意”。这对于许多开源项目来说是正常的,但这并不意味着它是正确的。我们承认它并不完美,并且还剩下一些“尘封的角落”(可能永远如此)。尽管如此,SciPy 对其用户来说极其有用,平均而言拥有高质量的代码和文档,并提供了 1.0 标签所蕴含的稳定性和向后兼容性保证。

历史回顾与展望#

  • 2001:第一个 SciPy 版本发布

  • 2005:过渡到 NumPy

  • 2007:创建 scikits

  • 2008:添加 scipy.spatial 模块和第一个 Cython 代码

  • 2010:改为每 6 个月发布一次

  • 2011:SciPy 开发转移到 GitHub

  • 2011:支持 Python 3

  • 2012:添加稀疏图模块和统一优化接口

  • 2012:移除 scipy.maxentropy

  • 2013:使用 TravisCI 进行持续集成

  • 2015:添加 BLAS/LAPACK 的 Cython 接口和基准测试套件

  • 2017:添加带有 scipy.LowLevelCallable 的统一 C API;移除 scipy.weave

  • 2017:SciPy 1.0 发布

Pauli Virtanen 是 SciPy 的终身仁慈独裁者(BDFL)。他说:

老实说,我们很久以前就可以发布 SciPy 1.0 了,所以我很高兴我们终于在现在做到了。这个项目历史悠久,多年来也作为一个软件项目日趋成熟。我相信它已经充分证明了自己的价值,值得拥有一个以“1”开头的版本号。

自 15 年多前构想以来,SciPy 主要由科学家为科学家编写,旨在提供他们所需的基本工具箱。随着时间的推移,活跃在开发中的人员经历了一些轮换,我们也逐渐发展出一种更为系统的开发方法。尽管如此,这种潜在的驱动力一直未变,我认为它在未来也将继续推动项目向前发展。这很好,因为 1.0 之后不久就会有 1.1。

Travis Oliphant 是 SciPy 的创建者之一。他说:

我很荣幸能向 SciPy 开发者和整个 SciPy 社区致以祝贺,祝贺 SciPy 1.0 的发布。这个版本代表了许多人的梦想,由一群坚定的先行者近 20 年来耐心追寻。在此期间,数百人的努力是广泛而持续的。从最初的讨论到编码和打包工作,再到文档工作,以及广泛的会议和社区建设,SciPy 的努力已成为一种全球现象,我很荣幸能参与其中。

SciPy 的想法在 1997 年就已经在许多人的脑海中萌芽,当时我作为一个刚刚爱上 Python 表达性和可扩展性的年轻研究生,首次加入 Python 社区。互联网刚刚开始将志同道合的数学家和科学家聚集在新兴的电子连接社区中。1998 年,在 matrix-SIG 的 Python 邮件列表中,与 Paul Barrett、Joe Harrington、Perry Greenfield、Paul Dubois、Konrad Hinsen、David Ascher 等人进行了一场集中讨论。这次讨论鼓励我在 1998 年和 1999 年推迟我的博士学业,花费大量时间为 Python 编写扩展模块,这些模块主要封装了经过实战检验的 Fortran 和 C 代码,使其可供 Python 用户使用。这项工作吸引了 Robert Kern、Pearu Peterson 和 Eric Jones 等人的帮助,他们于 2000 年加入我的工作,因此到 2001 年,第一个 SciPy 版本就准备好了。这比 GitHub 简化协作和他人输入,以及通过“patch”命令和电子邮件来帮助项目改进的方式早得多。

从那时起,数百人投入了大量时间改进 SciPy 库,围绕这个库的社区也显著壮大。大约在 2010 年,我停止了积极参与 SciPy 库的开发。幸运的是,当时 Pauli Virtanen 和 Ralf Gommers 在 David Cournapeau、Evgeni Burovski、Josef Perktold 和 Warren Weckesser 等数十位其他主要贡献者的支持下加快了开发步伐。虽然在过去的 7 年里,我只能远距离地欣赏 SciPy 的发展,但我从未失去对这个项目和社区驱动开发理念的热爱。即使现在,我仍然受到一种渴望的驱动,即不仅要帮助维持 SciPy 库的开发,还要帮助维持许多其他附属和相关的开源项目。我非常高兴 SciPy 掌握在一个由世界各地才华横溢的开发者组成的社区手中,他们将确保 SciPy 仍然是草根、社区驱动开发如何取得成功的典范。

Fernando Perez 提供更广泛的社区视角

在 2001 年我还是物理学研究生时,一个初生的 SciPy 库及其周围令人难以置信的——如果以今天的标准来看是微小的——社区,将我吸引进了科学 Python 的世界。今天,当我看到这些工具为从高中教育到导致 2017 年诺贝尔物理学奖的研究提供动力时,我感到无比敬畏。

不要被 1.0 这个数字所迷惑:这个项目是现代科学计算生态系统的一个成熟基石。我感谢许多使其成为可能的人,并希望将来能够再次为之贡献。衷心祝贺整个团队!

此版本的亮点#

此版本的一些亮点包括:

  • 主要的构建改进。Windows wheel 包首次在 PyPI 上提供,并且除了 Linux 之外,Windows 和 OS X 也已设置了持续集成。

  • 一套新的 ODE 求解器及其统一接口(scipy.integrate.solve_ivp)。

  • 两个新的信任区域优化器和一个新的线性规划方法,与之前 scipy.optimize 提供的相比,性能有所提升。

  • 许多新的 BLAS 和 LAPACK 函数被封装。BLAS 封装现已完成。

升级与兼容性#

此版本中有许多弃用和 API 更改,详情如下。在升级之前,我们建议用户检查自己的代码是否使用了已弃用的 SciPy 功能(为此,请使用 python -Wd 运行代码并检查 DeprecationWarning 警告)。

此版本需要 Python 2.7 或 >=3.4 以及 NumPy 1.8.2 或更高版本。

这也是最后一个支持 LAPACK 3.1.x - 3.3.x 的版本。将最低支持的 LAPACK 版本提升到 >3.2.x 长期以来一直被 Apple Accelerate 提供 LAPACK 3.2.1 API 所阻碍。我们决定是时候要么放弃 Accelerate,要么,如果有足够的兴趣,为更新的 LAPACK 版本中添加的函数提供 shim,以便它仍可使用。

新特性#

scipy.cluster 改进#

添加了 scipy.cluster.hierarchy.optimal_leaf_ordering 函数,用于重新排列连接矩阵,以最小化相邻叶子之间的距离。

scipy.fftpack 改进#

添加了离散正弦和余弦变换及其逆变换的 N 维版本,分别为 dctnidctndstnidstn

scipy.integrate 改进#

一组新的 ODE 求解器已添加到 scipy.integrate 中。便捷函数 scipy.integrate.solve_ivp 允许统一访问所有求解器。单独的求解器(RK23RK45RadauBDFLSODA)也可以直接使用。

scipy.linalg 改进#

scipy.linalg.blas 中的 BLAS 封装已完成。添加的函数包括 *gbmv*hbmv*hpmv*hpr*hpr2*spmv*spr*tbmv*tbsv*tpmv*tpsv*trsm*trsv*sbmv*spr2

已添加 LAPACK 函数 *gels*stev*sytrd*hetrd*sytf2*hetrf*sytrf*sycon*hecon*gglse*stebz*stemr*sterf*stein 的封装。

已添加函数 scipy.linalg.subspace_angles,用于计算两个矩阵之间的子空间角度。

已添加函数 scipy.linalg.clarkson_woodruff_transform。它通过 Clarkson-Woodruff 变换寻找低秩矩阵近似。

已添加函数 scipy.linalg.eigh_tridiagonalscipy.linalg.eigvalsh_tridiagonal,它们用于查找三对角厄米/对称矩阵的特征值和特征向量。

scipy.ndimage 改进#

已在 scipy.ndimage.affine_transform 中添加了对齐次坐标变换的支持。

ndimage 的 C 代码经过了重要的重构,现在更容易理解和维护。

scipy.optimize 改进#

方法 trust-region-exacttrust-krylov 已添加到函数 scipy.optimize.minimize 中。这些新的信任区域方法以更多 Hessian 分解(与 dogleg 相比)或更多矩阵向量积(与 ncg 相比)为代价,以更高的精度解决子问题,但通常需要更少的非线性迭代,并且能够处理不定 Hessian。它们在 scipy 中实现的其他牛顿方法面前显得非常有竞争力。

scipy.optimize.linprog 获得了内点法。它的性能(精度和速度方面)优于旧的单纯形法。

scipy.signal 改进#

参数 fs(采样频率)已添加到以下函数:firwinfirwin2firlsremez。这使得这些函数与 scipy.signal 中许多其他可以指定采样频率的函数保持一致。

scipy.signal.freqz 对于 FIR 滤波器已显著加速。

scipy.sparse 改进#

对 CSC 和 CSR 矩阵的迭代和切片现在速度提高了约 35%。

COO 矩阵的 tocsr 方法现在速度快了几倍。

稀疏矩阵的 diagonal 方法现在接受一个参数,指示返回哪个对角线。

scipy.sparse.linalg 改进#

添加了一个用于大规模非对称稀疏线性系统的新迭代求解器 scipy.sparse.linalg.gcrotmk。它实现了 GCROT 的灵活变体 GCROT(m,k)

scipy.sparse.linalg.lsmr 现在接受初始猜测,可能会产生更快的收敛。

SuperLU 已更新到版本 5.2.1。

scipy.spatial 改进#

scipy.spatial.distance 中的许多距离度量现在支持权重。

scipy.spatial.distance.pdistscipy.spatial.distance.cdist 的签名已更改为 *args, **kwargs,以支持更广泛的度量(例如,需要额外关键字的基于字符串的度量)。此外,pdistcdist 还添加了一个可选的 out 参数,允许用户指定结果距离矩阵的存储位置。

scipy.stats 改进#

方法 cdflogcdf 已添加到 scipy.stats.multivariate_normal,提供了多元正态分布的累积分布函数。

添加了新的统计距离函数,即用于计算第一 Wasserstein 距离的 scipy.stats.wasserstein_distance 和用于计算能量距离的 scipy.stats.energy_distance

已弃用特性#

scipy.misc 中的以下函数已弃用:bytescalefromimageimfilterimreadimresizeimrotateimsaveimshowtoimage。这些函数中的大多数行为出乎意料(例如在用户未要求的情况下重新缩放和类型转换图像数据)。其他函数只是有更好的替代方案。

scipy.interpolate.interpolate_wrapper 及其子模块中的所有函数均已弃用。这是一组从未完成的包装函数,现在已不再相关。

scipy.signal.convolve2dfillvalue 将来会直接转换为输入数组的数据类型,并检查它是否为标量或包含单个元素的数组。

scipy.spatial.distance.matching 已弃用。它是 scipy.spatial.distance.hamming 的别名,应改用后者。

scipy.spatial.distance.wminkowski 的实现基于对度量定义的错误解释。在 SciPy 1.0 中,它仅在文档中被弃用以保持向后兼容性,但建议使用实现正确行为的新版 scipy.spatial.distance.minkowski

scipy.spatial.distance.pdistscipy.spatial.distance.cdist 的位置参数应替换为其关键字版本。

向后不兼容的更改#

以下已弃用函数已从 scipy.stats 中移除:betaichisqprobf_valuehistogramhistogram2pdf_fromgammasignaltonoisesquare_of_sumsssthreshold

以下已弃用函数已从 scipy.stats.mstats 中移除:betaif_value_wilks_lambdasignaltonoisethreshold

已弃用的关键字 areta 已从 scipy.stats.shapiro 中移除。

已弃用的函数 sparse.csgraph.cs_graph_componentssparse.linalg.symeig 已从 scipy.sparse 中移除。

以下已弃用关键字已在 scipy.sparse.linalg 中移除:splu 中的 drop_tol,以及 bicgbicgstabcgcgsgmresqmrminres 中的 xtype

已弃用的函数 expm2expm3 已从 scipy.linalg 中移除。已弃用的关键字 q 已从 scipy.linalg.expm 中移除。并且已弃用的子模块 linalg.calc_lwork 已移除。

已弃用的函数 C2KK2CF2CC2FF2KK2F 已从 scipy.constants 中移除。

已弃用的 ppform 类已从 scipy.interpolate 中移除。

已弃用的关键字 iprint 已从 scipy.optimize.fmin_cobyla 中移除。

scipy.signal.decimatezero_phase 关键字的默认值已更改为 True。

scipy.cluster.vq 中的 kmeanskmeans2 函数更改了随机初始化使用的方法,因此使用固定的随机种子不一定会产生与以前版本相同的结果。

scipy.special.gammaln 不再接受复数参数。

已弃用的函数 sph_jnsph_ynsph_jnynsph_insph_knsph_inkn 已移除。用户应改用函数 spherical_jnspherical_ynspherical_inspherical_kn。请注意,新函数具有不同的签名。

scipy.signal.lti 系统的跨类属性已移除。以下属性/设置器已移除:

名称 - (访问/设置已移除) - (设置已移除)

  • StateSpace - (num, den, gain) - (zeros, poles)

  • TransferFunction (A, B, C, D, gain) - (zeros, poles)

  • ZerosPolesGain (A, B, C, D, num, den) - ()

ba 为 >1 维时,signal.freqz(b, a) 会引发 ValueError。这是一个边缘情况,其行为是否明确尚不清楚。

当 alpha 长度为 1 时,scipy.stats.dirichletvar 方法现在返回一个标量而不是 ndarray。

其他更改#

SciPy 现在有了一个正式的治理结构。它由一名 BDFL(Pauli Virtanen)和一名指导委员会组成。详情请参阅治理文档

现在可以在 Windows 上使用 MSVC + gfortran 构建 SciPy 了!Appveyor 上已为此构建配置设置了持续集成,针对 OpenBLAS 进行构建。

OS X 的持续集成已在 TravisCI 上设置。

SciPy 测试套件已从 nose 迁移到 pytest

添加了 scipy/_distributor_init.py,允许 SciPy 的再分发者添加在导入 SciPy 时需要运行的自定义代码(例如,硬件检查、DLL 搜索路径等)。

添加了对 PEP 518(指定构建系统要求)的支持——请参阅 SciPy 仓库根目录下的 pyproject.toml

为了保持函数命名一致性,函数 scipy.linalg.solve_lyapunov 已更名为 scipy.linalg.solve_continuous_lyapunov。旧名称保留以实现向后兼容。

作者#

  • @arcady +

  • @xoviat +

  • Anton Akhmerov

  • Dominic Antonacci +

  • Alessandro Pietro Bardelli

  • Ved Basu +

  • Michael James Bedford +

  • Ray Bell +

  • Juan M. Bello-Rivas +

  • Sebastian Berg

  • Felix Berkenkamp

  • Jyotirmoy Bhattacharya +

  • Matthew Brett

  • Jonathan Bright

  • Bruno Jiménez +

  • Evgeni Burovski

  • Patrick Callier

  • Mark Campanelli +

  • CJ Carey

  • Robert Cimrman

  • Adam Cox +

  • Michael Danilov +

  • David Haberthür +

  • Andras Deak +

  • Philip DeBoer

  • Anne-Sylvie Deutsch

  • Cathy Douglass +

  • Dominic Else +

  • Guo Fei +

  • Roman Feldbauer +

  • Yu Feng

  • Jaime Fernandez del Rio

  • Orestis Floros +

  • David Freese +

  • Adam Geitgey +

  • James Gerity +

  • Dezmond Goff +

  • Christoph Gohlke

  • Ralf Gommers

  • Dirk Gorissen +

  • Matt Haberland +

  • David Hagen +

  • Charles Harris

  • Lam Yuen Hei +

  • Jean Helie +

  • Gaute Hope +

  • Guillaume Horel +

  • Franziska Horn +

  • Yevhenii Hyzyla +

  • Vladislav Iakovlev +

  • Marvin Kastner +

  • Mher Kazandjian

  • Thomas Keck

  • Adam Kurkiewicz +

  • Ronan Lamy +

  • J.L. Lanfranchi +

  • Eric Larson

  • Denis Laxalde

  • Gregory R. Lee

  • Felix Lenders +

  • Evan Limanto

  • Julian Lukwata +

  • François Magimel

  • Syrtis Major +

  • Charles Masson +

  • Nikolay Mayorov

  • Tobias Megies

  • Markus Meister +

  • Roman Mirochnik +

  • Jordi Montes +

  • Nathan Musoke +

  • Andrew Nelson

  • M.J. Nichol

  • Juan Nunez-Iglesias

  • Arno Onken +

  • Nick Papior +

  • Dima Pasechnik +

  • Ashwin Pathak +

  • Oleksandr Pavlyk +

  • Stefan Peterson

  • Ilhan Polat

  • Andrey Portnoy +

  • Ravi Kumar Prasad +

  • Aman Pratik

  • Eric Quintero

  • Vedant Rathore +

  • Tyler Reddy

  • Joscha Reimer

  • Philipp Rentzsch +

  • Antonio Horta Ribeiro

  • Ned Richards +

  • Kevin Rose +

  • Benoit Rostykus +

  • Matt Ruffalo +

  • Eli Sadoff +

  • Pim Schellart

  • Nico Schlömer +

  • Klaus Sembritzki +

  • Nikolay Shebanov +

  • Jonathan Tammo Siebert

  • Scott Sievert

  • Max Silbiger +

  • Mandeep Singh +

  • Michael Stewart +

  • Jonathan Sutton +

  • Deep Tavker +

  • Martin Thoma

  • James Tocknell +

  • Aleksandar Trifunovic +

  • Paul van Mulbregt +

  • Jacob Vanderplas

  • Aditya Vijaykumar

  • Pauli Virtanen

  • James Webber

  • Warren Weckesser

  • Eric Wieser +

  • Josh Wilson

  • Zhiqing Xiao +

  • Evgeny Zhurko

  • Nikolay Zinov +

  • Zé Vinícius +

共有 121 人为此版本做出了贡献。名字旁带有“+”的人是首次贡献补丁。此姓名列表是自动生成的,可能不完全完整。

1.0.0 版本已解决问题#

  • #2300: scipy.misc.toimage(以及 imresize)转换为 uint32…

  • #2347: 多个 misc.im* 函数错误地处理 3 或 4 通道的…

  • #2442: scipy.misc.pilutil -> scipy.ndimage?

  • #2829: Windows 上的 Mingw Gfortran?

  • #3154: scipy.misc.imsave 创建错误的位图头

  • #3505: scipy.linalg.lstsq() 残差的帮助文本有点奇怪

  • #3808: Brent 方法是否已实现用于最小化函数值…

  • #4121: 将 cdf() 方法添加到 stats.multivariate_normal

  • #4458: scipy.misc.imresize 更改图像范围

  • #4575: L-BFGS-B 的文档提到不存在的参数

  • #4893: misc.imsave 不适用于已定义文件类型

  • #5231: scipy.optimize.minimize(method=’L-BFGS-B’) 中的差异

  • #5238: scipy.cluster.hierarchy.dendrogram 中的最佳叶序

  • #5305: scipy/misc/pilutil.py 中 misc.imsave 的图像缩放错误?

  • #5823: filter_design 中的测试失败

  • #6061: scipy.stats.spearmanr 返回值超出 -1 到 1 的范围

  • #6242: imread 和 imshow, imsave 的不一致/重复

  • #6265: BUG: 带通类型 signal.iirfilter 在高频时不稳定…

  • #6370: scipy.optimize.linear_sum_assignment 在未定义矩阵时挂起

  • #6417: scipy.misc.imresize 将图像转换为 uint8

  • #6618: splrep 和 splprep 不一致

  • #6854: 在 I/O 函数中支持 PEP 519

  • #6921: [功能请求] 随机酉矩阵

  • #6930: `uniform_filter1d` 在输出时似乎是截断而不是四舍五入…

  • #6949: interp2d 函数导致 python 崩溃

  • #6959: scipy.interpolate.LSQUnivariateSpline - 检查是否递增…

  • #7005: scipy.optimize 中的 linear_sum_assignment 在其中一个条件不满足时永不返回…

  • #7010: `scipy.statsbinned_statistic_2d`:返回的 binnumbers 不正确

  • #7049: 当为区间调用时,`expm_multiply` 速度过慢

  • #7050: 为 rv_discrete 编写 _argcheck 文档

  • #7077: `coo_matrix.tocsr()` 仍然很慢

  • #7093: wheel 包许可

  • #7122: 基于草图的矩阵计算

  • #7133: scipy 特殊函数的不连续性

  • #7141: 改进椭圆积分的文档

  • #7181: numpy.poly1d 的更改导致 scipy 测试失败。

  • #7220: LinearOperator.__init__ 中的字符串格式问题

  • #7239: 源代码压缩包分发

  • #7247: genlaguerre poly1d-对象在求值时未遵循 'monic' 选项

  • #7248: BUG:master 分支上 Legendre 多项式的回归问题

  • #7316: dgels 缺失

  • #7381: Krogh 插值无法生成复数的导数…

  • #7416: scipy.stats.kappa4(h,k) 对正整数引发 ValueError…

  • #7421: scipy.stats.arcsine().pdf 和 scipy.stats.beta(0.5, 0.5).pdf…

  • #7429: scipy/linalg/tests/test_basic.py 中的 `test_matrix_norms()` 调用…

  • #7444: 文档:stats.dirichlet.var 输出描述错误

  • #7475: scalar_search_wolfe2 中的参数 amax 未使用

  • #7510: numpy.array 和 scipy.sparse 矩阵之间的操作返回…

  • #7550: 文档:信号教程:卷积解释中的错别字

  • #7551: stdint.h 包含在 SuperLU 头文件中,但不存在…

  • #7553: OS X 上 master 分支的构建已损坏

  • #7557: scipy.signal.periodogram 示例中的错误

  • #7590: OSX 测试失败 - test_ltisys.TestPlacePoles.test_real

  • #7658: optimize.BenchGlobal 损坏

  • #7669: multivariate_normal.cdf 返回 nan 结果

  • #7733: Delaunay.vertex_neighbor_vertices 中 indices, indptr 的使用不一致

  • #7747: np.random.dirichlet 中的 Numpy 更改导致测试失败

  • #7772: 修复 numpy lstsq rcond= 参数

  • #7776: 测试需要 `nose`

  • #7798: 1.0 发行说明的贡献者名称

  • #7828: TestCephes 上的 32 位 Linux 测试错误

  • #7893: scipy.spatial.distance.wminkowski 在 1.0.0b1 中的行为变化

  • #7898: 文档:窗口函数

  • #7959: 可能是 BUG:fmin_bfgs 在 1.0 中可能已损坏

  • #7969: scipy 1.0.0rc1 Windows wheel 包依赖于缺失的 msvcp140.dll

1.0.0 版本的拉取请求#

  • #4978: WIP: 将 pre_center 和 normalize 选项添加到 lombscargle

  • #5796: TST: 从测试中删除所有永久性过滤器更改

  • #5910: ENH: sparse.linalg: 添加 GCROT(m,k)

  • #6326: ENH: 新的 ODE 求解器

  • #6480: ENH: 将 signal.decimate 默认为 zero_phase=True

  • #6705: ENH: 向 sparse.linalg.lsqr 添加初始猜测

  • #6706: ENH: 向 sparse.linalg.lsmr 添加初始猜测

  • #6769: BUG: 优化:向 CG 线添加足够的下降条件检查…

  • #6855: 在 I/O 函数中处理支持 PEP 519 的对象

  • #6945: MAINT: ckdtree 代码库清理

  • #6953: 文档:添加 SciPy 项目治理文档

  • #6998: 修复 spearman 秩相关系数的文档

  • #7017: ENH: 将 logcdf 和 cdf 方法添加到 scipy.stats.multivariate_normal

  • #7027: 添加随机酉矩阵

  • #7030: ENH: 为 1D 样条曲线的 x 添加严格递增检查

  • #7031: BUG: 修复 linear_sum_assignment 在未定义矩阵时挂起的问题

  • #7041: 文档:澄清窗口默认是 DFT 偶数

  • #7048: 文档:修改了 find_peak_cwt 的文档。修复 #6922

  • #7056: 修复计算 spearman/kendall 时精度不足的问题…

  • #7057: MAINT: 更改 optimize.linear_sum_assignment 中的 dtype 比较。

  • #7059: TST: 使 Xdist_deprecated_args 覆盖所有度量

  • #7061: 修复 msvc 9 和 10 编译错误

  • #7070: ENH: sparse: 优化 CSR/CSC 切片快速路径

  • #7078: ENH: sparse: 将 sum_duplicates 延迟到 csr/csc

  • #7079: ENH: sparse: 允许子类覆盖特定的数学运算

  • #7081: ENH: sparse: 加速 CSR/CSC toarray()

  • #7082: MAINT: 为 Py3 添加缺失的 PyType_Ready(&SuperLUGlobalType)

  • #7083: 更正了 scipy.linalg.lstsq() 文档中的拼写错误

  • #7086: 修复导致 expm_multiply 过慢的 #7049 错误

  • #7088: 为 rv_discrete 编写了 _argcheck 文档

  • #7094: MAINT: 修复 PR #7082 中的错误

  • #7105: MAINT: 自定义 lyapunov 求解器中的 ?TRSYL 调用

  • #7111: 修复 UnivariateSpline 错误消息中的拼写错误

  • #7113: 修复:在文档中添加浮点数到返回类型

  • #7119: ENH: sparse.linalg: 移除 _count_nonzero hack

  • #7119: ENH: sparse.linalg: 移除 _count_nonzero 技巧

  • #7123: ENH: 为 scipy.optimize.linprog 添加了“内点法”

  • #7137: DOC: 澄清 stats.linregress 文档字符串,解决 gh-7074

  • #7138: DOC: special: 为 airy 文档字符串添加示例。

  • #7139: DOC: stats: 更新 stats 教程

  • #7142: BUG: special: 防止 pbwa 中出现段错误

  • #7143: DOC: special: 警告关于替代椭圆积分参数化的信息

  • #7146: 修复 NearestNDInterpolator 的文档字符串

  • #7148: DOC: special: 为 gamma 文档字符串添加 Parameters、Returns 和 Examples

  • #7152: MAINT: spatial: 移除 ckdtree/src/distance.h 中两个未使用的变量

  • #7153: MAINT: special: 移除 gammaln 的已废弃变体

  • #7154: MAINT: 修复一些生成 C 编译器警告的代码

  • #7155: DOC: linalg: 为 solve_bandedsolve_triangular 添加示例

  • #7156: DOC: 修复 NearestNDInterpolator 的文档字符串

  • #7159: BUG: special: 修复 pbwa 中当 x < 0 时导数的符号

  • #7161: MAINT: interpolate: 使 Rbf.A 数组成为一个属性

  • #7163: MAINT: special: 在 pbwa 的不精确区域返回 nan

  • #7165: ENH: optimize: 更改以提高 BFGS 实现的效率。

  • #7166: BUG: 防止 optimize._lsq.trf_linear.py 中的无限循环

  • #7173: BUG: sparse: 从 _add_dense 返回 numpy 矩阵

  • #7179: DOC: 修复稀疏 argmax 文档字符串中的错误

  • #7180: MAINT: interpolate: 对 interpolate/src/_interpolate.cpp 进行了一些清理

  • #7182: 允许 affine_transform 中的齐次坐标变换

  • #7184: MAINT: 移除修改只读属性的 hack

  • #7185: ENH: 添加周期样条评估 #6730

  • #7186: MAINT: PPoly: 改进错误形状/轴的错误消息

  • #7187: DEP: interpolate: 废弃 interpolate_wrapper

  • #7198: DOC: linalg: 为 solveh_bandedsolve_toeplitz 添加示例。

  • #7200: DOC: stats: 为广义...添加了教程文档

  • #7208: DOC: 为 issparse/isspmatrix(_...) 方法添加了文档字符串并...

  • #7213: DOC: 为 circmean, circvar, circstd 添加了示例

  • #7215: DOC: 为 scipy.sparse.linalg... 文档字符串添加示例

  • #7223: DOC: special: 为 expit 和 logit 添加示例。

  • #7224: BUG: interpolate: 修复 fitpack.bispev 中的整数溢出

  • #7225: DOC: 更新 1.0 版本发布说明,针对近期多个 PR。

  • #7226: MAINT: 更新邮件列表迁移到 python.org 的文档和代码

  • #7233: 修复问题 #7232: 不要在目标函数评估中屏蔽异常

  • #7234: MAINT: cluster: 清理 VQ/k-means 代码

  • #7236: DOC: 修正了拼写错误

  • #7238: BUG: 修复由于 trustregion_exact 中的 unicode 字符导致的语法错误。

  • #7243: DOC: 更新 misc/pilutil.py 中的文档字符串

  • #7246: DEP: misc: 废弃导入的名称

  • #7249: DOC: 为 scipy.cluster.vq.kmeans 添加绘图示例

  • #7252: 修复 5231: factr, ftol 的文档与代码同步

  • #7254: ENH: 球面Voronoi输入处理

  • #7256: 修复问题 #7255 - 循环统计函数给出错误...

  • #7263: CI: 使用 Python 的 faulthandler 简化段错误跟踪

  • #7288: ENH: linalg: 添加 subspace_angles 函数。

  • #7290: BUG: stats: 修复 genextreme 中的虚假警告。

  • #7292: ENH: optimize: 添加了信任区域方法 trust-trlib

  • #7296: DOC: stats: 为 ttest_ind_from_stats 文档字符串添加示例。

  • #7297: DOC: signal: 为 chirp()sweep_poly() 添加示例。

  • #7299: DOC: 使 brent 和 fminbound 之间的区别更清晰

  • #7305: 简化 integrate._ode 中的 if 语句和构造函数调用

  • #7309: 符合 PEP 518。

  • #7313: REL: 将 python_requires 添加到 setup.py,修复 Python 版本检查。

  • #7315: BUG: 修复了 Laguerre 和 Legendre 多项式的 bug

  • #7320: DOC: 澄清 ode.integrate 中标志的含义

  • #7333: DOC: 为 scipy.ndimage.gaussian_filter1d 添加示例

  • #7337: ENH: 为 fftpack 添加 n 维 DCT 和 IDCT

  • #7353: 添加 _gels 函数

  • #7357: DOC: linalg: 为 svdvals 文档字符串添加示例。

  • #7359: 将 Sphinx 版本升级到 1.5.5

  • #7361: DOC: linalg: 在特殊矩阵之间添加一些“另请参阅”链接...

  • #7362: TST: 修复一些 Fedora 25 测试失败。

  • #7363: DOC: linalg: 调整 svd 的文档字符串示例

  • #7365: MAINT: 修复 Sphinx >= 1.5 的 refguide_check.py

  • #7367: BUG: odrpack: 修复 d_lpkbls.f 中无效的步幅检查

  • #7368: DOC: constants: 为 'find' 文档字符串添加示例。

  • #7376: MAINT: 将 Mathjax 与构建的文档捆绑

  • #7377: MAINT: optimize: 信任区域精确方法的更好名称。

  • #7378: 改进教程中的措辞

  • #7383: 修复 KroghInterpolator.derivatives 在复杂输入下的失败

  • #7389: FIX: 在 resample_poly 中复制可变窗口

  • #7390: DOC: optimize: 对 curve_fit 示例进行一些调整

  • #7391: DOC: 为 scipy.stats 添加示例

  • #7394: “重量”实际上是质量。将 slugs 和 slinches/blobs 添加到质量中

  • #7398: DOC: 修正 optimize.{brenth,brentq} 中的小拼写错误

  • #7401: DOC: zeta 只接受实数输入

  • #7413: BUG: 修复 _minimize_trustregion_exact 中的错误消息

  • #7414: DOC: 修复 ndimage.distance_transform_bf 文档字符串 [ci skip]

  • #7415: DOC: 修复 skew 文档字符串 [ci skip]

  • #7423: 使用正确维度扩展 binnumbers

  • #7431: BUG: 将 scipy.stats.arcsine.pdf 扩展到端点 0 和 1 #7427

  • #7432: DOC: 为 scipy.cluster.hierarchy 添加示例

  • #7448: ENH: stats: 实现 pareto 的生存函数。

  • #7454: FIX 将 np.assert_allclose 替换为导入的 assert_allclose

  • #7460: TST: 修复在 32 位 Python 上失败的 integrate.ivp 测试。

  • #7461: Doc: 为 stats distributions ksone 添加了教程文档

  • #7463: DOC: 修复拼写错误并移除尾随空格

  • #7465: 修复一些 ndimage.interpolation 的字节序 bug

  • #7468: 移除 interpolate.py 中的冗余

  • #7470: 在 minpack_lmdif 中初始化“info”

  • #7478: 增加了对 smirnov/smirnovi 函数的更多测试

  • #7479: MAINT: 更新以适应 numpy 1.13.0 中新的 FutureWarning

  • #7480: DOC: 正确描述 dirichlet.mean() 和...的输出形状

  • #7482: signal.lti: 移除已废弃的交叉系统属性

  • #7484: MAINT: 清理 ndimage 中 np.asarray 的使用

  • #7485: ENH: 在 ndimage.gaussian_filter 中支持任何 order >=0

  • #7486: ENH: 支持 sparse.diagonal() 的 k!=0

  • #7498: BUG: sparse: 将 assumeSortedIndices 选项传递给 scikit.umfpack

  • #7501: ENH: 为 linkage 矩阵添加最优叶序

  • #7506: MAINT: 移除 Metropolis 中的溢出,修复 #7495

  • #7507: TST: 通过减少 mpmath 测试中的评估点来加快完整测试套件。

  • #7509: BUG: 修复使用 python setup.py somecommand --force 时的问题。

  • #7511: 修复使用 lgtm 发现的一些警告

  • #7514: 添加对返回整数含义的解释。

  • #7516: BUG: 修复 ndimage.uniform_filter1d 中的舍入误差。

  • #7517: TST: 修复 signal.convolve 测试,该测试实际上被跳过了。

  • #7523: ENH: linalg: 允许 lstsq 处理 0 形数组

  • #7525: TST: 警告清理

  • #7526: DOC: ndimage.interpolation 函数中的参数不是可选的

  • #7527: MAINT: 在 NI_LineBuffer 中封装错误消息处理。

  • #7528: MAINT: 移除 NPY_MAXDIMS 的 ndimage 别名。

  • #7529: MAINT: 移除 NI_(UN)LIKELY 宏,转而使用 numpy 的宏。

  • #7537: MAINT: 对 numpy 数组内部使用访问器函数

  • #7541: MAINT: 移除 ndimage 中一些 Numarray 类型的使用。

  • #7543: MAINT: 替换 ni_fourier.c 中所有 NumarrayTypes 的使用

  • #7544: MAINT: 替换 ni_interpolation.c 中所有 NumarrayTypes 的使用

  • #7545: MAINT: 替换 ni_measure.c 中所有 NumarrayTypes 的使用

  • #7546: MAINT: 替换 ni_morphology.c 中所有 NumarrayTypes 的使用

  • #7548: DOC: 在 benchmarks README 中添加关于如何在不重新构建的情况下运行的说明。

  • #7549: MAINT: 移除 NumarrayTypes。

  • #7552: TST: 修复 OSX 上发现的新警告 -> 错误 bug

  • #7554: 更新 superlu 到 5.2.1 + 修复 MSVC 上的 stdint.h 问题

  • #7556: MAINT: 修复 #7549 中的一些类型 + 杂项警告。

  • #7558: MAINT: 使用正确的 #define NO_IMPORT_ARRAY,而不是 NO_ARRAY_IMPORT...

  • #7562: BUG: 从 numpy 复制 import_nose

  • #7563: ENH: 添加第一个 Wasserstein 和 Cramér-von Mises 统计...

  • #7568: 测试清理

  • #7571: 测试清理 pt. 2

  • #7572: Pytest 化

  • #7574: TST: 移除 stats 中忽略警告过滤器

  • #7577: MAINT: 移除 ndimage/ni_measure.c 和 .h 中未使用的代码

  • #7578: TST: 移除 sparse 中忽略警告过滤器,清理警告...

  • #7581: BUG: 正确释放 PyArray_IntpConverter 的内存。

  • #7582: DOC: signal 教程: 卷积解释中的拼写错误

  • #7583: 移除剩余的忽略警告过滤器

  • #7586: DOC: 在 HACKING.rst 中添加关于在哪里找到构建文档的说明。

  • #7587: DOC: 为 scipy.optimize 添加示例

  • #7594: TST: 为 ndimage 转换器函数添加测试。

  • #7596: 为 signal.savgol_filter 添加了健全性检查

  • #7599: _upfirdn_apply 停止条件 bug 修复

  • #7601: MAINT: special: 移除 sph_jn 等。

  • #7602: TST: 修复 numpy...修剪统计测试中的测试失败

  • #7605: 明确所需的维度顺序

  • #7606: MAINT: 移除未使用的函数 NI_NormalizeType

  • #7607: TST: 将 osx 添加到 travis 矩阵

  • #7608: DOC: 改进 HACKING 指南 - 提及审查 PR 作为贡献。

  • #7609: MAINT: 通过避免不必要的...移除不必要的警告过滤器

  • #7610: #7557 : 修复 periodogram 中的示例代码

  • #7611: #7220 : 修复引发 ValueError 时出现的 TypeError

  • #7612: 将 yield 测试转换为 pytest 参数化测试

  • #7613: 添加分发器初始化文件

  • #7614: 修复头文件

  • #7615: BUG: sparse: 修复非规范稀疏参数的赋值问题

  • #7617: DOC: 澄清数字滤波器函数

  • #7619: ENH: scipy.sparse.spmatrix.astype: 转换和复制参数...

  • #7621: 向用户暴露 VODE/ZVODE/LSODE IDID 返回码

  • #7622: MAINT: special: 移除 ellpk 的过时注释

  • #7625: TST: 为“忽略”警告过滤器添加测试

  • #7628: MAINT: 重构和清理 distance.py/.c/.h

  • #7629: DEP: 废弃 xdist 中 args 的用法

  • #7630: ENH: 加权指标

  • #7634: #6855 的后续

  • #7635: interpolate.splprep: 测试一些错误情况,给出稍微更好的...

  • #7642: 为 interpolate.lagrange 添加示例

  • #7643: ENH: 为 LAPACK stev 添加了封装

  • #7649: 修复 #7636,为剩余的 I/O 函数添加 PEP 519 测试覆盖率

  • #7650: DOC: signal: 为 sosfiltfilt 的文档字符串添加“示例”。

  • #7651: 修复 Travis 上的 ccache 使用 + 尝试在 OSX 上启用

  • #7653: DOC: 示例从 2 转换到 3。解决 #7366

  • #7659: BENCH: 修复 optimize.BenchGlobal。解决 gh-7658。

  • #7662: CI: 加快持续集成构建

  • #7664: 更新 odr 文档

  • #7665: BUG: wolfe2 线/标量搜索现在使用 amax 参数

  • #7671: MAINT: _lib/ccallback.h: PyCapsule_GetName 返回 const char*

  • #7672: TST: interpolate: 测试周期 b-样条集成对抗...

  • #7674: 测试调优

  • #7675: CI: 将 refguide-check 移动到更快的构建

  • #7676: DOC: 升级 scipy-sphinx-theme 以修复 copybutton.js

  • #7678: 注意 splrepsplprep 结果的零填充

  • #7681: MAINT: _lib: 添加用户可覆盖的可用内存确定

  • #7684: TST: linalg: 明确关闭打开的 npz 文件

  • #7686: MAINT: 移除不必要的 shebang 行和可执行位

  • #7687: BUG: stats: 如果矩是无限的,则不发出无效警告

  • #7690: ENH: 允许在多个例程中使用类似整数的参数

  • #7691: DOC: 移除文档中不工作的源链接

  • #7694: 修复函数 median_cihsma.rrayma.array 的错误

  • #7698: BUG: stats: 修复 multivariate_normal.cdf 返回 nan 的问题 (#7669)

  • #7703: DOC: special: 更新非中心 F 函数的文档字符串。

  • #7709: BLD: integrate: 避免 lsoda 和 vode 之间的符号冲突

  • #7711: TST: _lib: 使 test_parallel_threads 不会错误地失败

  • #7712: TST: stats: 在 TestMultivariateNormal.test_broadcasting 中提高测试容差

  • #7715: MAINT: 修复 numpy.issubdtype 的已废弃用法

  • #7716: TST: integrate: 移除计时测试

  • #7717: MAINT: mstats.winsorize 包含 bug 修复

  • #7719: DOC: stats: 添加关于 rdist 分布特殊情况的说明。

  • #7720: DOC: 为 stats.pearsonr 添加示例和数学公式

  • #7723: DOC: 添加 Mann-Whitney U 统计参考

  • #7727: BUG: special/cdflib: 处理 nan 和非有限输入

  • #7728: BLD: spatial: 修复 ckdtree 依赖头文件列表

  • #7732: BLD: 更新 Bento 构建以适应 optimal_leaf_ordering 的添加

  • #7734: DOC: signal: 复制编辑并为 Kaiser 相关...添加示例

  • #7736: BUG: 修复 #7735: 防止连接索引...中的整数溢出

  • #7737: DOC: 为 spatial.Delaunay vertex_neighbor_vertices 重命名 indices/indptr

  • #7738: ENH: 加快 freqz 计算

  • #7739: TST: 忽略 win32 中的 ncfdtridfn 失败并警告 FPU 模式更改

  • #7740: 修复 Anderson-Darling k-样本测试中的溢出

  • #7742: TST: special: 限制 expm1 mpmath 比较范围

  • #7748: TST: stats: 不要将无效的 alpha 传递给 np.random.dirichlet

  • #7749: BUG/DOC: optimize: 方法是“interior-point”,而不是“interior...

  • #7751: BUG: optimize: show_options('linprog', method='interior-point')...

  • #7753: ENH: io: 更简单的 FortranFile 读/写混合记录语法

  • #7754: BLD: 将 _lib._fpumode 扩展添加到 Bento 构建。

  • #7756: DOC: 将概率密度函数显示为数学公式

  • #7757: MAINT: 移除过时的 OS X 构建脚本。修复 pytest 失败。

  • #7758: MAINT: stats: pep8,换行

  • #7760: DOC: special: 添加如何添加特殊函数的说明

  • #7761: DOC: 允许为 Sphinx makefile 指定 Python 版本

  • #7765: TST: 修复 mstats_extras.py 的测试覆盖率

  • #7767: DOC: 更新 1.0 版本发布说明。

  • #7768: DOC: 更新发布说明。同时更改 paver 文件为...

  • #7769: 为 planck dist 添加 _sf_logsf 函数

  • #7770: DOC: 替换 minres 文档字符串中损坏的链接

  • #7771: MAINT: f2py 构建输出清理

  • #7773: DOC: optimize: 对 linprog 文档进行一些复制编辑。

  • #7774: MAINT: 明确为 np.linalg.lstsq 调用设置 rcond

  • #7777: 移除剩余的 nose 导入

  • #7780: ENH: 封装 LAPACK 的 dsytrd

  • #7781: DOC: 链接 rfft

  • #7782: MAINT: 在 cythonize 中运行 pyx 自动生成并删除自动生成的文件

  • #7783: FIX: 禁止数字滤波器中的 Wn==1

  • #7790: 修复 gh-5910 引入的测试错误

  • #7792: MAINT: 修复 pyproject.toml 中的语法

  • #7809: ENH: 草图 - Clarkson Woodruff 变换

  • #7810: ENH: 添加 eig(vals)_tridiagonal

  • #7811: BUG: stats: 修复 binned_statistics_dd 中的警告

  • #7814: ENH: signal: 将“nyq”和“Hz”参数替换为“fs”。

  • #7820: DOC: 更新 1.0 版本发布说明和邮件映射

  • #7823: BUG: messagestream / qhull.pyx 中的内存泄漏

  • #7830: DOC: linalg: 为 lstsq 文档字符串添加示例。

  • #7835: ENH: decimate 的自动 FIR 阶数

  • #7838: MAINT: stats: 废弃 frechet_lfrechet_r

  • #7841: slsqp PEP8 格式修复,拼写错误等。

  • #7843: ENH: 封装所有 BLAS 例程

  • #7844: DOC: 根据需要更新 LICENSE.txt 中捆绑库的许可证。

  • #7851: ENH: 为 ?GGLSE, ?(HE/SY)CON, ?SYTF2, ?(HE/SY)TRF 添加封装

  • #7856: ENH: 为 Xdist 添加了 out 参数

  • #7858: BUG: special/cdflib: 修复 cumfnc 中致命的精度损失问题

  • #7859: FIX: 消除 place_poles 警告边界情况

  • #7861: 未定义 WITH_THREAD 的虚拟语句

  • #7863: MAINT: 将许可证文本添加到二进制发行版

  • #7866: DOC, MAINT: 修复文档中的链接

  • #7867: DOC: 修复分布文档字符串中 pdf 描述。

  • #7869: DEP: 废弃 misc.pilutil 函数

  • #7870: DEP: 移除已废弃的函数

  • #7872: TST: 静默 stats.truncnorm 测试中标记为...的 RuntimeWarning

  • #7874: TST: 修复一个间歇性失败的 optimize.linprog 测试。

  • #7875: TST: 过滤 stats 测试中的两个集成警告。

  • #7876: GEN: 为测试添加注释以澄清

  • #7891: ENH: 将 #7879 向后移植到 1.0.x

  • #7902: MAINT: signal: 使 freqz 对多维数组的处理与...匹配

  • #7905: REV: 还原 wminkowski

  • #7908: FIX: 避免糟糕的 __del__ (关闭) 行为

  • #7918: TST: 将两个 optimize.linprog 测试标记为 xfail。参见 gh-7877。

  • #7929: MAINT: 在 sytf2, sytrf 和 hetrf 中将默认值更改为 lower

  • #7939: 修复 win-amd64 的 umfpack 求解器构建

  • #7948: DOC: 添加关于升级到...前检查废弃项的说明

  • #7952: DOC: 更新 SciPy 路线图,针对 1.0 版本发布和近期讨论。

  • #7960: BUG: optimize: 还原 gh-7165 中对 bfgs 的更改

  • #7962: TST: special: 将一个失败的 hyp2f1 测试标记为 xfail

  • #7973: BUG: 修复 _get_mem_available 工具中“info”中的关键字错误

  • #8001: TST: 修复 Matplotlib 2.1 更新导致的测试失败

  • #8010: BUG: signal: 修复 lfilter 中的崩溃

  • #8019: MAINT: 修复 NumPy master 中的测试失败