SciPy 1.0.0 发行说明#

我们非常高兴地宣布 SciPy 1.0 的发布,这是在 0.1 版本面世 16 年之后。这是一个漫长而富有成效的旅程,我们期待未来有更多激动人心的新功能和版本发布。

为什么现在是 1.0?#

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

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

我们中的许多人都有点完美主义,因此不愿称之为“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 的努力已经成为一种全球现象,能够参与其中是一种荣幸。

当我 1997 年第一次加入 Python 社区时,SciPy 的想法已经在多人的脑海中,当时我还是一个年轻的研究生,刚刚爱上了 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 轮子首次在 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 的版本。由于 Apple Accelerate 提供 LAPACK 3.2.1 API,将支持的最低 LAPACK 版本移动到 >3.2.x 长期受阻。我们已决定现在是时候放弃 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,它们查找三对角 Hermitian/对称矩阵的特征值和特征向量。

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(m,k),一种灵活的 GCROT 变体。

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 将在未来直接转换为输入数组的 dtypes,并检查它是否是标量或具有单个元素的数组。

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 -(numdengain) -(zerospoles

  • TransferFunction(ABCDgain)-(zerospoles

  • ZerosPolesGain(ABCDnumden)-()

ba >1-D 时,signal.freqz(b, a) 会引发 ValueError 错误。这是一个边界情况,对于这种情况,其行为是否明确尚不清楚。

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

其他更改#

SciPy 现在有一个正式的管理结构。它由 BDFL(Pauli Virtanen)和一个指导委员会组成。有关详细信息,请参阅治理文档

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

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

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: 向 stats.multivariate_normal 添加 cdf() 方法

  • #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: Wheels 许可

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

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

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

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

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

  • #7239: 源代码 tarball 分发

  • #7247: genlaguerre poly1d 对象在评估时不遵循 'monic' 选项

  • #7248: BUG:master 上勒让德多项式的回归

  • #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: SuperLU 头文件中包含 stdint.h,但不存在...

  • #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: 32 位 Linux 测试在 TestCephes 上出现错误

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

  • #7898: 文档:窗口函数

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

  • #7969: scipy 1.0.0rc1 windows wheels 依赖于缺失的 msvcp140.dll

1.0.0 的拉取请求#

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

  • #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: optimize: 向 CG line 添加充分下降条件检查...

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

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

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

  • #6998: 修复 spearman 等级 corrcoef 的文档

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

  • #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 中的错误

  • #7098: BF: 从失败的 Py3 模块检查返回 NULL

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

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

  • #7113: FIX: 在文档中添加 float 到返回类型

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

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

  • #7137: 文档:澄清 stats.linregress 文档字符串,关闭 gh-7074

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

  • #7139: 文档:stats: 更新 stats 教程

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

  • #7143: 文档:special: 警告有关其他椭圆积分参数化的信息

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

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

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

  • #7153: MAINT: special: 删除已弃用的 gammaln 变体

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

  • #7155: 文档:linalg: 为 solve_bandedsolve_triangular 添加示例

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

  • #7159: BUG: special: 修复 pbwax < 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: 文档:修复 sparse 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: 修复 issue #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: SphericalVoronoi 输入处理

  • #7256: 修复 issue #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 多项式的问题

  • #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: “重量”实际上是质量。将斯勒格和斯林奇/波浪添加到质量

  • #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 的字节序错误

  • #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: 为连接矩阵添加最优叶排序

  • #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:用 numpy 的宏替换 NI_(UN)LIKELY 宏。

  • #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: 测试清理第 2 部分

  • #7572: Pytestifying

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

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

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

  • #7581: BUG:正确地从 PyArray_IntpConverter 中释放内存。

  • #7582: DOC:信号教程:卷积解释中的错别字

  • #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 : 修复周期图中的示例代码

  • #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 <s,d>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:允许在多个例程中使用类似 int 的参数

  • #7691: DOC:从文档中删除无法正常工作的源链接

  • #7694: 将函数 median_cihs 中的 ma.rray 修复为 ma.array

  • #7698: BUG:stats:修复 multivariate_normal.cdf (#7669) 中的 nan 结果

  • #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 包含错误修复

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

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

  • #7723: 文档:添加了曼-惠特尼 U 统计量参考

  • #7727: 错误修复:special/cdflib:处理 NaN 和非有限输入

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

  • #7732: 构建:更新 Bento 构建以添加 optimal_leaf_ordering

  • #7734: 文档:signal:对 Kaiser 相关内容进行复制编辑并添加示例

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

  • #7737: 文档:为 spatial.Delaunay vertex_neighbor_vertices 重命名索引/indptr

  • #7738: 增强:加速 freqz 计算

  • #7739: 测试:忽略 win32 中的 ncfdtridfn 失败,并在 FPU 模式更改时发出警告

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

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

  • #7748: 测试:stats:不要向 np.random.dirichlet 传递无效的 alpha

  • #7749: 错误修复/文档:optimize:方法是“内点”,而不是“内部…”

  • #7751: 错误修复:optimize:show_options('linprog', method='interior-point')

  • #7753: 增强:io:为混合记录的 FortranFile 读取/写入提供更简单的语法

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

  • #7756: 文档:以数学形式显示概率密度函数

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

  • #7758: 维护:stats:pep8,换行

  • #7760: 文档:special:添加有关如何添加特殊函数的说明

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

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

  • #7767: 文档:更新 1.0 发行说明。

  • #7768: 文档:更新有关如何发布的说明。还更改 paver 文件以…

  • #7769: 为 planck 分布添加 _sf_logsf 函数

  • #7770: 文档:替换 minres 文档字符串中失效的链接

  • #7771: 维护:f2py 构建输出清理

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

  • #7774: 维护:为 np.linalg.lstsq 调用显式设置 rcond

  • #7777: 删除残留的 nose 导入

  • #7780: 增强:包装 LAPACK 的 dsytrd

  • #7781: 文档:链接 rfft

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

  • #7783: 修复:在数字滤波器中不允许 Wn==1

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

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

  • #7809: 增强:sketch - Clarkson Woodruff 变换

  • #7810: 增强:添加 eig(vals)_tridiagonal

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

  • #7814: 增强:signal:将 'nyq' 和 'Hz' 参数替换为 'fs'。

  • #7820: 文档:更新 1.0 发行说明和 mailmap

  • #7823: 错误修复:messagestream / qhull.pyx 中的内存泄漏

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

  • #7835: 增强:为 decimate 自动确定 FIR 阶数

  • #7838: 维护:stats:弃用 frechet_lfrechet_r

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

  • #7843: 增强:包装所有 BLAS 例程

  • #7844: 文档:根据需要使用捆绑库的许可更新 LICENSE.txt。

  • #7851: 增强:添加 ?GGLSE、?(HE/SY)CON、?SYTF2、?(HE/SY)TRF 的包装器

  • #7856: 增强:向 Xdist 添加了 out 参数

  • #7858: 错误修复:special/cdflib:修复 cumfnc 中严重的精度损失问题

  • #7859: 修复:抑制 place_poles 警告的极端情况

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

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

  • #7866: 文档、维护:修复文档中的链接

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

  • #7869: 弃用:弃用 misc.pilutil 函数

  • #7870: 弃用:删除已弃用的函数

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

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

  • #7875: 测试:过滤 stats 测试中的两个积分警告。

  • #7876: 通用:向测试添加注释以进行澄清

  • #7891: 增强:将 #7879 反向移植到 1.0.x

  • #7902: 维护:signal:使 freqz 对多维数组的处理与…

  • #7905: 撤销:恢复 wminkowski

  • #7908: 修复:避免错误的 __del__(关闭)行为

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

  • #7929: 维护:将 sytf2、sytrf 和 hetrf 中的默认值更改为较低

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

  • #7948: 文档:添加关于在升级到…之前检查弃用的说明

  • #7952: 文档:更新 1.0 发行版和最近讨论的 SciPy 路线图。

  • #7960: 错误修复:optimize:还原 gh-7165 中对 bfgs 的更改

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

  • #7973: 错误修复:修复了 _get_mem_available 实用程序中“info”中的关键字

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

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

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