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 维版本添加为 dctn
、idctn
、dstn
和 idstn
。
scipy.integrate
改进#
一组新的 ODE 求解器已添加到 scipy.integrate
。便利函数 scipy.integrate.solve_ivp
允许统一访问所有求解器。单个求解器(RK23
、RK45
、Radau
、BDF
和 LSODA
)也可以直接使用。
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_tridiagonal
和 scipy.linalg.eigvalsh_tridiagonal
,它们查找三对角 Hermitian/对称矩阵的特征值和特征向量。
scipy.ndimage
改进#
已将对齐次坐标变换的支持添加到 scipy.ndimage.affine_transform
。
ndimage
C 代码进行了重大重构,现在更容易理解和维护。
scipy.optimize
改进#
方法 trust-region-exact
和 trust-krylov
已添加到函数 scipy.optimize.minimize
。这些新的信赖域方法以更高的精度求解子问题,但代价是更多的 Hessian 分解(与 dogleg 相比)或更多的矩阵向量积(与 ncg 相比),但通常需要更少的非线性迭代,并且能够处理不确定的 Hessian。与 scipy 中实现的其他牛顿方法相比,它们似乎非常有竞争力。
scipy.optimize.linprog
获得了一种内点法。其性能优于(在准确性和速度方面)旧的单纯形法。
scipy.signal
改进#
一个参数 fs
(采样频率)被添加到以下函数:firwin
、firwin2
、firls
和 remez
。这使得这些函数与 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.pdist
和 scipy.spatial.distance.cdist
的签名已更改为 *args, **kwargs
,以便支持更广泛的度量标准(例如,需要额外关键字的基于字符串的度量标准)。此外,pdist
和 cdist
中添加了一个可选的 out
参数,允许用户指定结果距离矩阵的存储位置。
scipy.stats
的改进#
方法 cdf
和 logcdf
已添加到 scipy.stats.multivariate_normal
,提供了多元正态分布的累积分布函数。
添加了新的统计距离函数,即用于计算第一 Wasserstein 距离的 scipy.stats.wasserstein_distance
和用于计算能量距离的 scipy.stats.energy_distance
。
已弃用的特性#
以下 scipy.misc 中的函数已被弃用:bytescale
、fromimage
、imfilter
、imread
、imresize
、imrotate
、imsave
、imshow
和 toimage
。 这些函数中的大多数都有意想不到的行为(例如,在用户没有要求的情况下重新缩放和类型转换图像数据)。其他函数只是有更好的替代方案。
scipy.interpolate.interpolate_wrapper
和该子模块中的所有函数都已弃用。 这是一组从未完成的包装函数,现在已经不再相关。
scipy.signal.convolve2d
的 fillvalue
将在未来直接转换为输入数组的 dtypes,并检查它是否是标量或具有单个元素的数组。
scipy.spatial.distance.matching
已弃用。 它是 scipy.spatial.distance.hamming
的别名,应使用该函数代替。
scipy.spatial.distance.wminkowski 的实现基于对度量定义的错误解释。在 scipy 1.0 中,它只是在文档中被弃用以保持向后兼容性,但建议使用新版本的 scipy.spatial.distance.minkowski
,该版本实现了正确的行为。
scipy.spatial.distance.pdist
和 scipy.spatial.distance.cdist
的位置参数应替换为它们的关键字版本。
向后不兼容的更改#
以下已弃用的函数已从 scipy.stats
中删除:betai
、chisqprob
、f_value
、histogram
、histogram2
、pdf_fromgamma
、signaltonoise
、square_of_sums
、ss
和 threshold
。
以下已弃用的函数已从 scipy.stats.mstats
中删除:betai
、f_value_wilks_lambda
、signaltonoise
和 threshold
。
已弃用的 a
和 reta
关键字已从 scipy.stats.shapiro
中删除。
已弃用的函数 sparse.csgraph.cs_graph_components
和 sparse.linalg.symeig
已从 scipy.sparse
中删除。
以下已弃用的关键字已在 scipy.sparse.linalg
中删除:splu
中的 drop_tol
,以及 bicg
、bicgstab
、cg
、cgs
、gmres
、qmr
和 minres
中的 xtype
。
已弃用的函数 expm2
和 expm3
已从 scipy.linalg
中删除。 已弃用的关键字 q
已从 scipy.linalg.expm
中删除。并且已弃用的子模块 linalg.calc_lwork
已被删除。
已弃用的函数 C2K
、K2C
、F2C
、C2F
、F2K
和 K2F
已从 scipy.constants
中删除。
已弃用的 ppform
类已从 scipy.interpolate
中删除。
已弃用的关键字 iprint
已从 scipy.optimize.fmin_cobyla
中删除。
scipy.signal.decimate
的 zero_phase
关键字的默认值已更改为 True。
scipy.cluster.vq
中的 kmeans
和 kmeans2
函数更改了用于随机初始化的方法,因此使用固定的随机种子不一定会产生与以前版本相同的结果。
scipy.special.gammaln
不再接受复数参数。
已弃用的函数 sph_jn
、sph_yn
、sph_jnyn
、sph_in
、sph_kn
和 sph_inkn
已被移除。用户应改用函数 spherical_jn
、spherical_yn
、spherical_in
和 spherical_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
)-()
当 b
或 a
>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
。旧名称保留以实现向后兼容性。
为 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_banded
和solve_triangular
添加示例#7156: 文档:修复 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: 文档:修复 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_banded
和solve_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 返回 constchar*
#7672: TST:interpolate:测试积分周期 b 样条与...
#7674: 测试调整
#7675: CI:将 refguide-check 移动到更快的构建
#7676: DOC:升级 scipy-sphinx-theme 以修复 copybutton.js
#7678: 注意
splrep
和splprep
结果的零填充#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_l
和frechet_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 中的测试失败