SciPy 1.0.0 发布说明#

我们非常高兴地宣布 SciPy 1.0 的发布,距离 0.1 版本问世已有 16 年。这是一段漫长而富有成效的旅程,我们期待未来会有更多令人兴奋的新功能和版本。

为什么现在是1.0版本?#

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

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

我们中的许多人都有点完美主义,因此不愿意称某物为“1.0”,因为这可能意味着它是“完成的”或“我们对此100%满意”。这对许多开源项目来说是正常的,但这并不意味着它是正确的。我们承认它并不完美,还有一些角落需要清理(这可能永远都是如此)。尽管如此,SciPy对用户来说非常有用,平均而言具有高质量的代码和文档,并提供了1.0标签所暗示的稳定性和向后兼容性保证。

一些历史和观点#

  • 2001: 第一个 SciPy 发布

  • 2005: 过渡到 NumPy

  • 2007年:scikits 的创建

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

  • 2010: 转向每半年发布周期

  • 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继续成为草根社区驱动开发如何成功的典范。

费尔南多·佩雷斯 提供了更广泛的社区视角:

一个新兴的Scipy库的存在,以及围绕它的令人难以置信的——尽管按照今天的标准来说很小——社区,是我在2001年还是一名物理学研究生时被吸引到科学Python世界的原因。今天,当我看到这些工具从高中教育到推动2017年诺贝尔物理学奖研究的一切时,我感到敬畏。

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

此版本的亮点#

此版本的一些亮点包括:

  • 主要构建改进。Windows 轮子首次在 PyPI 上可用,并且在 Linux 之外,Windows 和 OS X 上也设置了持续集成。

  • 一组新的常微分方程求解器及其统一的接口(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 版本中添加的功能提供垫片,以便它仍然可以使用。

新功能#

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(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 已被移除。

已弃用的函数 C2K, K2C, F2C, C2F, F2KK2F 已从 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) - ()

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

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

其他更改#

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

现在可以在 Windows 上使用 MSVC + gfortran 构建 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 +

  • 安东·阿赫梅罗夫

  • 多米尼克·安东纳奇 +

  • 亚历山德罗·皮耶罗·巴德利

  • Ved Basu +

  • 迈克尔·詹姆斯·贝德福德 +

  • 雷·贝尔 +

  • 胡安·M·贝洛-里瓦斯 +

  • 塞巴斯蒂安·伯格

  • 菲利克斯·伯肯坎普

  • Jyotirmoy Bhattacharya +

  • 马修·布雷特

  • 乔纳森·布莱特

  • 布鲁诺·希门尼斯 +

  • Evgeni Burovski

  • 帕特里克·卡利尔

  • 马克·坎帕内利 +

  • CJ 凯里

  • 罗伯特·西姆尔曼

  • 亚当·考克斯

  • 迈克尔·达尼洛夫 +

  • 大卫·哈伯特尔 +

  • 安德拉斯·德阿克 +

  • 菲利普·德布尔

  • 安妮-西尔维·德意志

  • 凯茜·道格拉斯 +

  • 多米尼克·埃尔塞 +

  • 郭飞 +

  • 罗马·费尔德鲍尔 +

  • 余峰

  • 海梅·费尔南德斯·德尔·里奥

  • Orestis Floros +

  • 大卫·弗里斯 +

  • 亚当·盖特吉 +

  • 詹姆斯·格里蒂 +

  • 德兹蒙德·高夫 +

  • 克里斯托夫·戈尔克

  • Ralf Gommers

  • 迪尔克·戈里森 +

  • 马特·哈伯兰德 +

  • 大卫·哈根 +

  • 查尔斯·哈里斯

  • 林元熙 +

  • 让·赫利 +

  • 高特·霍普 +

  • 纪尧姆·霍雷尔 +

  • 弗兰齐斯卡·霍恩 +

  • Yevhenii Hyzyla +

  • 弗拉迪斯拉夫·雅科夫列夫 +

  • 马文·卡斯特纳 +

  • Mher Kazandjian

  • 托马斯·凯克

  • 亚当·库尔基耶维奇 +

  • Ronan Lamy +

  • J.L. 兰弗兰科 +

  • 埃里克·拉尔森

  • 丹尼斯·拉萨尔德

  • 格雷戈里·R·李

  • 菲利克斯·伦德斯 +

  • Evan Limanto

  • 朱利安·卢克瓦塔 +

  • 弗朗索瓦·马吉梅尔

  • Syrtis Major +

  • 查尔斯·马松 +

  • 尼古拉·马约罗夫

  • 托比亚斯·梅吉斯

  • 马库斯·迈斯特 +

  • 罗马·米罗奇尼克 +

  • Jordi Montes +

  • Nathan Musoke +

  • 安德鲁·纳尔逊

  • M.J. 尼科尔

  • Juan Nunez-Iglesias

  • 阿尔诺·昂肯 +

  • Nick Papior +

  • 迪马·帕塞奇尼克 +

  • Ashwin Pathak +

  • Oleksandr Pavlyk +

  • 斯蒂芬·彼得森

  • 伊尔汉·波拉特

  • 安德烈·波特诺伊 +

  • Ravi Kumar Prasad +

  • 阿曼·普拉提克

  • 埃里克·昆特罗

  • Vedant Rathore +

  • 泰勒·雷迪

  • Joscha Reimer

  • 菲利普·伦茨

  • 安东尼奥·奥尔塔·里贝罗

  • Ned Richards +

  • 凯文·罗斯 +

  • Benoit Rostykus +

  • 马特·鲁法洛 +

  • 伊莱·萨多夫 +

  • Pim Schellart

  • 尼科·施洛默 +

  • 克劳斯·塞姆布里茨基 +

  • 尼古拉·舍巴诺夫 +

  • 乔纳森·塔姆莫·西伯特

  • 斯科特·西弗特

  • Max Silbiger +

  • Mandeep Singh +

  • 迈克尔·斯图尔特

  • 乔纳森·萨顿

  • 深度塔夫克 +

  • 马丁·托马

  • 詹姆斯·托克内尔 +

  • 亚历山大·特里芬诺维奇 +

  • 保罗·范·穆尔布雷特 +

  • Jacob Vanderplas

  • 阿迪亚·维贾亚库马尔

  • 保罗·维尔塔宁

  • 詹姆斯·韦伯

  • 沃伦·韦克瑟

  • 埃里克·维瑟 +

  • 乔什·威尔逊

  • Zhiqing Xiao +

  • 叶夫根尼·茹科

  • 尼古拉·齐诺夫 +

  • 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: 轮子许可证

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

  • #7133: scipy 特殊函数的间断性

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

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

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

  • #7239: 源码压缩包分发

  • #7247: genlaguerre poly1d-object 在评估时不尊重 ‘monic’ 选项

  • #7248: BUG: 在主分支上的勒让德多项式回归问题

  • #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: DOC: 信号教程: 卷积解释中的拼写错误

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

  • #7553: 在 OS X 上主分支的构建失败

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

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

  • #7658: optimize.BenchGlobal 损坏

  • #7669: 从 multivariate_normal.cdf 得到的 nan 结果

  • #7733: Delaunay.vertex_neighbor_vertices 中索引和indptr的使用不一致

  • #7747: Numpy 在 np.random.dirichlet 中的变化导致测试失败

  • #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 轮子依赖于缺失的 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: 优化: 在CG线中添加足够的下降条件检查…

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

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

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

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

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

  • #7027: 添加随机酉矩阵

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

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

  • #7041: DOC: 澄清默认情况下窗口是 DFT-even 的

  • #7048: DOC: 修改了 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: 修复: 在文档中添加返回类型的浮点数

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

  • #7123: ENH: 为 scipy.optimize.linprog 添加了“interior-point”方法

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

  • #7138: DOC: special: 在 airy 文档字符串中添加一个示例。

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

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

  • #7143: DOC: 特殊函数: 警告关于椭圆积分的替代参数化

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

  • #7148: DOC: special: 在 gamma 文档字符串中添加参数、返回值和示例

  • #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: 特殊: 修复当 x < 0pbwa 中的导数符号

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

  • #7163: MAINT: special: 对于 pbwa 的不准确区域返回 nan

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

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

  • #7173: BUG: 稀疏: 从 _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: 插值: 修复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: SphericalVoronoi 输入处理

  • #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: 在 setup.py 中添加 python_requires,修复 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: 修复 refguide_check.py 以兼容 Sphinx >= 1.5

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

  • #7368: DOC: 常量: 在 ‘find’ 文档字符串中添加示例。

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

  • #7377: MAINT: 优化: 为 trust-region-exact 方法提供更好的名称。

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

  • #7383: 修复了KroghInterpolator.derivatives在处理复数输入时的失败问题

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

  • #7390: DOC: 优化: 对 curve_fit 中的示例进行了一些调整

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

  • #7394: “Weight” 实际上是质量。添加质量单位 slug 和 slinch/blob。

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

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

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

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

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

  • #7423: 扩展 binnumbers 并修正维度

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

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

  • #7448: ENH: stats: 实现 Pareto 分布的生存函数。

  • #7454: 修复 用导入的 assert_allclose 替换了 np.assert_allclose

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

  • #7461: 文档: 为 stats 分布 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 中支持任何阶数 >=0

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

  • #7498: BUG: 稀疏: 传递 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: 移除 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: 在基准测试 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: 信号教程: 卷积解释中的拼写错误

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

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

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

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

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

  • #7599: _upfirdn_apply 停止条件错误修复

  • #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: 稀疏: 修复非规范稀疏参数的赋值

  • #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 的文档字符串中添加 ‘Examples’。

  • #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: 插值: 测试周期性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_cihs 函数中 ma.rrayma.array 的拼写错误

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

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

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

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

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

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

  • #7716: TST: 积分: 删除时间测试

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

  • #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: 优化: show_options('linprog', method='interior-point')

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

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

  • #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 分布添加 _sf_logsf 函数

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

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

  • #7773: DOC: 优化: 对 linprog 文档进行了一些编辑。

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

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

  • #7780: ENH: 封装 LAPACK 的 dsytrd

  • #7781: DOC: 链接 rfft

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

  • #7783: 修复: 在数字滤波器中禁止 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: 用 ‘fs’ 替换 ‘nyq’ 和 ‘Hz’ 参数。

  • #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: 修复: 压制 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: 在统计测试中过滤两个积分警告。

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

  • #7891: ENH: 将 #7879 回传到 1.0.x

  • #7902: MAINT: signal: 使 freqz 处理多维数组的方式匹配…

  • #7905: REV: 恢复 wminkowski

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

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

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

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

  • #7948: DOC: 在升级到…之前添加检查弃用功能的说明

  • #7952: DOC: 更新 SciPy 1.0 版本路线图及近期讨论。

  • #7960: BUG: 优化: 还原 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 主分支的测试失败