NetworkX 2.5#

发布日期:2020年8月22日

支持Python 3.6、3.7和3.8。

NetworkX是一个用于创建、操作和研究复杂网络结构、动态和功能的Python包。

更多信息,请访问我们的 网站 和我们的 示例画廊 。请将评论和问题发送至 networkx-discuss 邮件列表

亮点#

此版本是经过10个月的工作,由92位贡献者进行了200多次提交的结果。亮点包括:

  • 不再支持Python 3.5。

  • 添加Pathlib支持以处理文件。

  • 提高性能。

  • 更新文档和测试。

  • 移除为Python 2设计的代码。

新功能:

  • lukes_partitioning

  • 三角分析函数

  • 食物链级别分析函数

  • d_separated

  • is_regular 和其他正则图度量

  • 使用Weisfeiler Lehman方法的graph_hash

  • common_neighbor_centrality(CCPA链路预测)

  • max_weight_clique

  • path_weight 和 is_path

  • rescale_layout_dict

  • junction_tree

新生成器:

  • paley_graph

  • interval_graph

新布局:

  • multipartite_layout

改进#

  • 添加治理文档、开发者指南和社区结构

  • 实施明确的弃用策略。

  • 启动NX Enhancement Proposal(NXEP)系统

  • 优化single_source_shortest_path

  • 在最短路径例程中改进一致的“weight”规范

  • 减少numpy.matrix的使用,这在numpy中是不鼓励的。

  • 改进线条颜色

  • 更好地处理文档的搜索引擎

  • lattice 和 grid_graph 以及 grid_2d_graph 可以使用 dim=tuple

  • 修复 kamada_kawai_layout 算法的初始化程序

  • moral 和 threshold 函数现在包含在命名空间和文档中

  • 绘制时更好地缩放箭头

  • 更统一地创建随机龙虾图

  • 允许在迭代连接组件时编辑图

  • 在将pandas DataFrame转换时更好地处理列

  • 允许使用有向图输入进行simrank_similarity

  • 确保VoteRank能力为非负

  • 加速kernighan_lin_bisection

  • 加速检测负权重环

  • tree_isomorphism

  • rooted_tree_isomorphism

  • Gexf边属性“label”可用

API更改#

  • contracted_nodes 中启用了“copy”标志参数

  • 允许部分周期性晶格

  • minimum_st_node_cut 的返回值现在始终为集合

  • 从 create_py_random_state 中删除了未使用的“has_numpy”参数

  • 在绘制空节点和边时修复了返回值

  • 允许将边的集合和冻结集作为nx.Graph()的输入

  • “weight”可以是astar、directional_dijkstra、all_shortest_path的函数

  • 允许为GraphML边写入指定命名键id

  • 现在在nx.draw和相关函数中检查所有关键字的有效性

  • EdgeDataView的“in”运算符检查节点是否在“nbunch”中

  • 从最小权重完全匹配中删除完整性条件

  • 在BFS遍历中添加对邻居进行排序的选项

  • draw_networkx现在接受numpy数组作为边列表

  • relabel_nodes现在可以创建多重边,即使有2个节点映射到同一个节点

  • steiner_tree可以与MultiGraph一起使用

  • 在view_pygraphviz中添加 show 参数 (#4155)

  • 为将chordal_graph_cliques转换为生成器做准备 (#4162)

  • GraphML阅读器关键字force_multigraph即使没有多重边也会创建MultiGraph

废弃功能#

  • [ #3680 ] 废弃 make_str(x) ,使用 str(x) 代替。 废弃 is_string_like(obj) ,使用 isinstance(obj, str) 代替。

  • [ #3725 ] 废弃 literal_stringizerliteral_destringizer

  • [ #3983 ] 废弃 reversed 上下文管理器。

  • [ #4155 ] 废弃 display_pygraphviz

  • [ #4162 ] 废弃 chordal_graph_cliques 返回一个集合。

  • [ #4161 ] 废弃 betweenness_centrality_source

  • [ #4161 ] 废弃 edge_betweenness

  • [ #4161 ] 将 _naive_greedy_modularity_communities 重命名为 naive_greedy_modularity_communities

已合并的PR#

共提交了256个更改。

  • 升级发布版本

  • 更新发布流程

  • 放弃对Python 3.5的支持

  • 修正文档中的拼写错误

  • 删除旧的Python 2代码

  • 增加更多doctests

  • 修复pydot测试

  • 不清楚如何测试测试辅助函数

  • Pathlib在Py 3.4中引入

  • 删除使用sys.version_info检测Python 2的代码

  • 使用yield from

  • 对测试进行PEP8修复

  • 删除未使用的导入

  • 使用pytest.importorskip

  • PEP8修复

  • 删除未使用的导入

  • 添加pep8_speaks配置

  • 使用itertools accumulate

  • 修复问题3610:gexf.py中版本属性的错误

  • 忽略W503

  • 在没有可选依赖项的情况下运行doctest

  • 缺少依赖项时跳过doctests

  • 删除sed导入

  • 启用测试 (#3678)

  • 添加 contracted_nodes 复制标志 (#3646)

  • 废弃make_str

  • 废弃is_string_like

  • 修复PEP8问题

  • 启用ThinGraph测试 (#3681)

  • 优化_single_shortest_path_length (#3647)

  • 修复问题3431:对于make_small_graph的错误输入返回错误 (#3676)

  • 避免由于导入而产生重复测试 (#3684)

  • 修复拼写错误:Laplacian -> Laplacian (#3689)

  • 添加测试

  • Lukes算法实现 (#3666)

  • 删除解决使用starmap的shim

  • 添加回到图库

  • 将colormap和颜色限制添加到LineCollection (#3698)

  • 修复matplotlib弃用问题 (#3697)

  • 调整SciPy CoC

  • 更新文档以更准确地描述G.neighbors的速度 (#3699)

  • 使用规范的URL以帮助搜索引擎

  • 删除重复的许可参数 (#3710)

  • 修复几个地方关于异常的文档问题

  • 修复更多关于异常的文档问题

  • 删除旧的Python 2代码

  • 从模块顶部删除样板代码

  • 删除多余的编码信息

  • 更新示例

  • 简化包的文档字符串

  • 从非可执行文件中删除shebang

  • 添加贡献者

  • 对边在(k-2)个三角形中定义的K-支撑进行修正,而不是K个三角形 (#3713)

  • 在Python 3.8上启用可选测试

  • 修复test_numpy_type以在Python 3.8下通过

  • 添加数据文件的链接

  • 废弃Python 2/3兼容性代码

  • 更新样式

  • 分开易于安装和难以安装的可选要求

  • 默认安装可选依赖项

  • 重构测试

  • 子图复制的示例代码:在is_multigraph中添加括号 (#3734)

  • 修正拼写错误 (#3735)

  • 修复引用链接 (#3741)

  • 为清晰的错误消息从setup.py中删除f字符串 < py3.6 (#3738)

  • 3511 gml列表支持 (#3649)

  • 添加linestyle作为参数 (#3747)

  • 链接到示例所需的文件 (#3752)

  • 修正一个拼写错误

  • 合并拉取请求 #3759 从yohm/patch-1

  • 删除未使用的变量以使grid_graph支持dim=tuple (#3760)

  • 数独生成器问题3756 (#3757)

  • 修复shall_layout中单节点壳的缩放 (#3764)

  • 添加三角分析函数 (#3742)

  • 改进测试覆盖率

  • 更新contribs脚本

  • 将%-格式转换为fstring

  • 升级到Py36语法

  • 更新字符串格式

  • 修复scipy的弃用警告

  • 更新年份

  • 消除已知警告 (#3770)

  • 修复asyn_fluidc的文档字符串 (#3779)

  • 修复 #3703 (#3784)

  • 修复kamada_kawai_layout的初始化器 (networkx #3658) (#3782)

  • 次要注释问题 (#3787)

  • 将moral和threshold包添加到主命名空间 (#3788)

  • 将权重函数添加到bidirectional_dijkstra和astar (#3799)

  • 在绘制有向边时正确缩小箭头的源端。#3805 (#3806)

  • 部分周期晶格的选项 (networkx #3586) (#3807)

  • 防止subgraph_is_monomorphic上的KeyError (#3798)

  • 营养级别 #3736 (#3804)

  • UnionFind的union没有准确跟踪集合大小 (#3810)

  • 删除空格 (#3816)

  • 重新考虑龙虾生成器 (#3822)

  • 修复拼写错误 (#3838)

  • 修复略微混淆含义的拼写错误 (#3840)

  • 为问题 #3846 添加修复 (#3848)

  • 从create_py_random_state中删除未使用的变量has_numpy (#3852)

  • 在绘制空节点和边时修复返回值 #3833 (#3854)

  • 使connected_components对组件集合变异安全 (#3859)

  • 修复文档字符串中的示例 (#3866)

  • 将README.rst网站链接更新为https (#3888)

  • 拼写错误 (#3894)

  • 使CONTRIBUTING.rst更清晰 (#3895)

  • 修复nx.info()的文档以及必要的测试 (#3893)

  • 为jit_data函数的json dumps添加默认参数 (#3891)

  • 将nx.Digraph更正为nx.DiGraph (#3909)

  • 使用Sphinx 3.0.1

  • 修复Sphinx弃用

  • 在文档中添加标志

  • 允许边节点的集合 (#3907)

  • 当将’id’转换为int()失败时添加额外信息。 (解决 #3910) (#3916)

  • 添加 Paley 图 (#3900)

  • 将 Paley 图添加到文档中 (#3927)

  • 更新 astar.py (#3947)

  • 使用关键字作为位置参数 (#3952)

  • 修复文档 (#3959)

  • 为 GraphML 写入添加命名键 ID 的选项 (#3960)

  • 修复文档 (#3958)

  • 在 all_shortest_paths 中正确处理零权重边 (#3783)

  • 修复文档中的拼写错误 (#3965)

  • 修复:修正 simrank_similarity_numpy 的文档 (#3954)

  • 修复 #3930(转换为 pd.DataFrame 时未覆盖源和目标列)的问题 (#3935)

  • 为 #3948 添加最短简单路径的权重函数 (#3949)

  • 修复 communicability 的定义 (#3973)

  • 修复 simrank_similarity 在有向图输入时的问题 (#3961)

  • 修复投票能力的削弱 (#3970)

  • 实现更快的 Kernighan-Lin 二分算法 (#3858)

  • 修复问题 #3926 (#3928)

  • 更新 CONTRIBUTORS.rst (#3982)

  • 弃用 context_manager 中的 reversed,改用 reversed_view (#3983)

  • 更新 CONTRIBUTORS.rst (#3987)

  • 为 voterank 增强功能 (#3972)

  • 添加 d-分离算法 (#3974)

  • 文档:为 find_cycle 添加 see also 部分 (#3999)

  • 改进 subgraph_view filter_edge 的文档 (#4010)

  • 修复 dag.py 中的异常原因 (#4000)

  • 在 to_networkx_graph 中显式处理异常 (#4009)

  • 修复 12 个模块中的异常原因和消息 (#4012)

  • 修复拼写错误: np.int -> np.int_ (#4013)

  • 修复一个拼写错误 (#4017)

  • 更改文档 (#3981)

  • 为正则图添加算法 (#3925)

  • 拼写错误 Hand 应为 Hans (#4025)

  • 文档:在 CONTRIBUTING 中添加测试要点 (#4035)

  • 更新 Sphinx

  • 更新可选/测试依赖项

  • 添加治理/价值观/nexp/路线图

  • 改进教程中 None 的格式 (#3986)

  • 修复文档字符串中的 DiGraph 拼写错误 (#3892)

  • 更新到 Py3 文档的链接 (#4042)

  • 添加仅清除边的方法 (#3477)

  • 修复整个代码库中的异常原因和消息 (#4015)

  • 在 draw_networkx 中明确处理关键字参数 (#4033)

  • 返回空生成器而不是空列表 (#3967)

  • 正确推断 numpy 浮点类型 (#3919)

  • 维护:更新 from_graph6_bytes 参数/文档。 (#4034)

  • 在文档中添加 URLs/banner/titlebar (#4044)

  • 添加负循环检测启发式 (#3879)

  • 移除未使用的导入 (#3855)

  • 修复 generate_gml(G, stringizer=None) 中的错误 (#3841)

  • 当 k < 2 时引发 NetworkXError (#3761)

  • 维护:从 alg. conn. 模块中删除 np.matrix

  • 维护:从 attribute_ac 中删除 np.matrix

  • 维护,测试:为 TestAlgebraicConnectivity 中的方法添加参数化。

  • 维护,测试:参数化 buckminsterfullerene 测试。

  • 维护,测试:移除未使用的 _methods 类属性

  • 维护,测试:参数化 TestSpectralOrdering。

  • 排除自/递归边 (#4037)

  • WIP:更改 EdgeDataView 的 __contains__ 特性(第二次尝试) (#3845)

  • 为多图简单路径索引边 (#3358)

  • 增强:添加新的 graph_hashing 功能

  • 修复 pandas 弃用问题

  • 组织删除已弃用代码

  • 更新 Sphinx

  • 增强:为 GED 添加 roots 和 timeout (#4026)

  • 使画廊更加突出

  • 添加 interval_graph 的实现及其单元测试 (#3705)

  • 修正了kamada_kawai_layout文档字符串中的拼写错误 (#4059)

  • 从最小权重完全匹配中移除完整性条件 (#4057)

  • 实现了multipartite_layout (#3815)

  • 添加了新的链路预测算法(CCPA) (#4028)

  • 在bfs遍历过程中添加了对节点邻居进行排序的选项 (#4029)

  • TST: 从测试中移除int64规范 (#4055)

  • 运行了pyupgrade –py36plus

  • 移除了末尾的空格

  • 告诉psf/black忽略特定的np.arrays

  • 使用black格式化

  • 添加了用于psf/black的pre-commit钩子

  • 合并了来自jarrodmillman/black的拉取请求 #4060

  • 修正了匹配文档字符串中的一些拼写错误 (#4063)

  • 修复了to_scipy_sparse_matrix函数的bug (#3985)

  • 更新了最小权重完全匹配的文档 (#4062)

  • 添加了最大权重团算法 (#4016)

  • 创建networkx对象后清除pygraphviz对象 (#4070)

  • 在travis上使用更新的osx (#4075)

  • 更新brew后安装Python (#4079)

  • 添加到black的链接 (#4078)

  • 改进了关于erdos-reyni图生成器别名的文档 (#4074)

  • MAINT: 从INSTALL中删除了依赖版本信息 (#4081)

  • 简化了顶层目录 (#4087)

  • DOC: 修正了laplacianmatrix中的返回类型 (#4090)

  • 在文档中添加模块性 (#4096)

  • 允许G.remove_edges_from(nx.selfloops_edges(G)) (#4080)

  • MAINT: 使用numpy内置函数替代私有函数 (#4094)

  • 允许在from_pandas_edgelist中为多重边添加自定义键 (#4076)

  • 修正了planar_layout文档字符串 (#4097)

  • DOC: 关于numpy.matrix的重新措辞

  • MAINT: 内部删除to/from_numpy_matrix

  • 合并了来自rossbar/rm_npmatrix的拉取请求 #4093

  • 移除版权样板 (#4105)

  • 更新贡献者指南 (#4088)

  • 添加了计算指定路径成本的函数 (#4069)

  • 更新了from_pandas_edgelist的文档字符串 (#4108)

  • 在文档中添加了max_weight_clique (#4110)

  • 更新了弃用策略 (#4112)

  • 改进了模块性计算 (#4103)

  • 添加了团队画廊 (#4117)

  • CI: 为文档构建设置了circle CI (#4119)

  • 构建pdf (#4123)

  • DOC: 从教程阅读中提出的建议和改进 (#4121)

  • 在travis上启用3.9-dev (#4124)

  • 修复了parse_edgelist在多属性情况下的行为 (#4125)

  • CI: 临时解决CI latex安装问题 (#4131)

  • 更新了draw_networkx以接受numpy数组作为edgelist (#4132)

  • 添加了树同构性 (#4067)

  • MAINT: 在to_networkx_graph中切换到基于abc的isinstance检查 (#4136)

  • 使用dict而不是OrderedDict,因为从Python 3.6开始dict默认是有序的 (#4145)

  • MAINT: 修复了parse_edgelist的问题 (#4128)

  • 更新了circleci镜像上的apt-get (#4147)

  • 添加了rescale_layout_dict以更改布局字典的比例 (#4154)

  • 更新依赖项

  • 从要求中移除了gdal

  • relabel_nodes现在在多重图中保留边 (#4066)

  • MAINT,TST: 改进了nx_agraph模块的覆盖率 (#4156)

  • 通过后处理使steiner_tree适用于MultiGraphs (#4160)

  • 为view_pygraphviz添加了 show 参数 (#4155)

  • 为将chordal_graph_cliques准备成生成器 (#4162)

  • 文档更新 (#4161)

  • 从doctests中删除不必要的nx导入 (#4163)

  • 使用显式边ID从graphml中创建MultiGraph #3470 (#3763)

  • 更新sphinx依赖 (#4164)

  • 在GEXF写入器中添加边标签作为可选属性 (#3347)

  • v2.5版本发布说明的初稿 (#4159)

  • 指定2.5rc1版本发布

  • 升级发布版本号

  • 在发布说明中更新弃用内容 (#4166)

  • 更新阈值模块中公共函数的文档字符串 (#4167)

  • 格式化文档字符串中的Python代码 (#4168)

  • 修复文档构建警告中的标记错误 (#4174)

其中包含以下3个合并:

  • 修正拼写错误 (#3759)

  • 使用psf/black (#4060)

  • 维护:替换to_numpy_matrix和from_numpy_matrix的内部使用 (#4093)

贡献者#

  • Adnan Abdulmuttaleb

  • Abhi

  • Antoine-H

  • Salim BELHADDAD

  • Ross Barnowski

  • Lukas Bernwald

  • Isaac Boates

  • Kelly Boothby

  • Matthias Bruhns

  • Mahmut Bulut

  • Rüdiger Busche

  • Gaetano Carpinato

  • Nikos Chan

  • Harold Chan

  • Camden Cheek

  • Daniel

  • Daniel-Davies

  • Bastian David

  • Christoph Deil

  • Tanguy Fardet

  • 赵丰 (Zhao Feng)

  • Andy Garfield

  • Oded Green

  • Drew H

  • Alex Henrie

  • Kang Hong Jin

  • Manas Joshi

  • Søren Fuglede Jørgensen

  • Aabir Abubaker Kar

  • Folgert Karsdorp

  • Suny Kim

  • Don Kirkby

  • Katherine Klise

  • Steve Kowalik

  • Ilia Kurenkov

  • Whi Kwon

  • Paolo Lammens

  • Zachary Lawrence

  • Sanghack Lee

  • Anton Lodder

  • Lukas Lösche

  • Eric Ma

  • Mackyboy12

  • Christoph Martin

  • Alex Marvin

  • Mattwmaster58

  • James McDermott

  • Jarrod Millman

  • Ibraheem Moosa

  • Yohsuke Murase

  • Neil

  • Harri Nieminen

  • Danny Niquette

  • Carlos G. Oliver

  • Juan Orduz

  • Austin Orr

  • Pedro Ortale

  • Aditya Pal

  • PalAditya

  • Jose Pinilla

  • PranayAnchuri

  • Jorge Martín Pérez

  • Pradeep Reddy Raamana

  • Ram Rachum

  • David Radcliffe

  • Federico Rosato

  • Tom Russell

  • Craig Schmidt

  • Jonathan Schneider

  • Dan Schult

  • Mridul Seth

  • Karthikeyan Singaravelan

  • Songyu-Wang

  • Kanishk Tantia

  • Jeremias Traub

  • James Trimble

  • Shashi Tripathi

  • Stefan van der Walt

  • Jonatan Westholm

  • Kazimierz Wojciechowski

  • Jangwon Yie

  • adnanmuttaleb

  • anentropic

  • arunwise

  • beckedorf

  • ernstklrb

  • farhanbhoraniya

  • fj128

  • gseva

  • haochenucr

  • johnthagen

  • kiryph

  • muratgu

  • ryan-duve

  • sauxpa

  • tombeek111

  • willpeppo