NetworkX 2.1#

发布日期: 2018年1月22日

支持 Python 2.7, 3.4, 3.5, 和 3.6。

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

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

亮点#

此版本是 37 位贡献者四个月工作、75 个 pull request 的成果。亮点包括

  • DiGraph 边的绘图箭头得到了极大改进!并提供了示例来展示它们。

  • 新增了 12 个以上用于图生成、操作和/或新图算法的函数。

    • 新增大型团大小启发式函数 (#2830)

    • 新增有根乘积函数 (#2825)

    • 标签传播社区检测 (#2821)

    • 最小圈基 (#2823)

    • 新增 Mycielski 算子 (#2785)

    • 新增 prefix_tree, dag_to_branching 和示例 (#2784)

    • 从 #2241 新增 inverse_line_graph 生成器 (#2782)

    • Steiner 树和度量闭包 (#2252)

    • 新增基于流的节点和边不相交路径 (#2063)

    • 更新几何网络并新增模型 (#2498)

    • 图编辑距离 (#2729)

    • 新增查找 k-边增强的函数 (#2572)

  • G.name 不再由图操作符处理。它保留作为一种属性机制来访问 G.graph['name'],但用户需要负责在复制、子图、联合以及其他图操作中更新或更改它。

改进#

  • 许多 bug 修复、文档更改。

  • 速度提升,特别是对于子图。

  • 更改了使用 **kwds 的函数输入变量名,以避免名称冲突 – 特别是 add_node

  • 新增箭头和网格图谱嵌入的示例。

API 更改#

  • [#2498] 在 geographical_threshold_graph 中,从 NetworkX 2.1 开始,参数 alpha 已弃用,并替换为可自定义的 p_dist 函数参数,如果未提供 p_dist,则默认为 r^-2。要重现早期 NetworkX 版本的网络,需要定义一个自定义函数并将其作为 p_dist 参数传递。例如,如果在 NetworkX 2.0 中使用参数 alpha = 2,则在 >=2.1 版本中可以将自定义函数 def custom_dist(r): r**-2 作为参数 p_dist = custom_dist 传递,以生成等效的网络。请注意此参数更改中符号从 +2 变为 -2。

  • [#2554] 新增算法用于在有向图和无向图中查找 k-边连通分量和 k-边连通子图。为 k=1 和 k=2 的特殊情况提供了高效实现。新功能由以下函数提供:

    k_edge_components()

    k_edge_subgraphs()

  • [#2572] 新增算法用于在无向图中查找 k-边增强。为 k=1 和 k=2 的特殊情况提供了高效实现。新功能由以下函数提供:

    • k_edge_augmentation()

  • [#2812] 移除 bellman_ford,请使用 bellman_ford_predecessor_and_distance

  • [#2811] 移除 to_pandas_dataframefrom_pandas_dataframe,请使用 to_pandas_adjacency, from_pandas_adjacency, to_pandas_edgelist, 或 from_pandas_edgelist

  • [#2766] 在 random_layout 和 spring_layout 中新增 seed 关键字参数

  • [#2776] 在 spring layout 中新增 threshold 选项

  • [#2774] max_weight_matching 返回边集合

  • [#2753] 新增对读取 jit_graph 的有向图支持

  • [#2788] 控制 draw_networkx_nodes 中的节点边界颜色

弃用#

  • [#2819] 弃用 connected_component_subgraphs, biconnected_component_subgraphs, attracting_component_subgraphs, strongly_connected_component_subgraphs, weakly_connected_component_subgraphs。请改用: [G.subgraph(c) for c in *_components]

贡献者#

  • Jack Amadeo

  • Boskovits

  • Daniel Bradburn

  • David Bradway

  • Ariel Chinn

  • Jon Crall

  • Rodrigo Dorantes-Gilardi

  • Bradley Ellert

  • Adam Erispaha

  • Ioannis Filippidis

  • ForFer

  • Louis Gatin

  • Aric Hagberg

  • Harry

  • Huston Hedinger

  • Charles Tapley Hoyt

  • James Lamb

  • Sanghack Lee

  • MD

  • Cole MacLean

  • Marco

  • Jarrod Millman

  • Sanggyu Nam

  • Viraj Parimi

  • Dima Pasechnik

  • Richard Penney

  • Naresh Peshwe

  • Zachary Sailer

  • Dan Schult

  • Jordi Torrents

  • John Wegis

  • aparamon

  • aweltsch

  • gfyoung

  • md0000

  • mddddd

  • talhum

已合并的 PR#

  • 更新 v2.1 发布说明 (#2839)

  • 更新发布说明 (#2838)

  • 更新版权 (#2837)

  • 新增大型团大小启发式函数 (#2830)

  • 移除对 G.name 属性的自动处理 (#2829)

  • 新增有根乘积函数 (#2825)

  • 标签传播社区检测 (#2821)

  • 更改变量名以避免 kwargs 冲突 (#2824)

  • 最小圈基 (#2823)

  • 弃用 component_subgraphs 函数 (#2819)

  • 临时禁用 sphinx doctests (#2818)

  • 调整图类边缘属性赋值的文档 (#2817)

  • 新增对读取 jit_graph 的有向图支持 (#2753)

  • 将箭头作为一个绘图示例 (#2801)

  • 修复 len(edges) 中自环的 bug (#2816)

  • MRG: 移除 to_pandas_dataframefrom_pandas_dataframe (#2811)

  • 修复 Pydot 测试,使其与新版本 1.2.4 一起工作 (#2815)

  • MRG: 移除 bellman_ford (#2812)

  • 合并生成器模块并调整文档 (#2814)

  • 适用于 NumPy 1.14+ 的旧版数组打印 (#2810)

  • 修复罕见的结构上禁止的映射 bug (#2798)

  • Digraph 箭头以修复 #2757 (#2760)

  • 为参数检查使用泛型 Integral 类型 (#2800)

  • 控制 draw_networkx_nodes 中的节点边界颜色 (#2788)

  • 在 random_layout 和 spring_layout 中新增 seed 关键字参数 (#2766)

  • 新增 Mycielski 算子 (#2785)

  • 新增 prefix_tree, dag_to_branching 和示例 (#2784)

  • 从 #2241 新增 inverse_line_graph 生成器 (#2782)

  • 新增 steiner_tree 和 metric_closure 的文档 (#2783)

  • Steiner 树和度量闭包 (#2252)

  • 更正 weight 参数的 docstring (#2781)

  • 在 .travis.yml 中将 osx_image 切换到 xcode 7.3 (#2780)

  • 更改 sparse6 测试文件名的方式 (#2779)

  • 新增基于流的节点和边不相交路径 (#2063)

  • 更新几何网络并新增模型 (#2498)

  • [WIP] 图编辑距离 2361 (#2729)

  • max_weight_matching 返回边集合 (#2774)

  • 避免关键字和属性冲突 (#2775)

  • 在 spring layout 中新增 threshold 选项 (#2776)

  • 修复 expected_degree_graph 生成器中的 bug (#2773)

  • 在 quotient_graph 中新增对不完整分区的支持 (#2771)

  • 修复 SOURCE_DATE_EPOCH 被忽略的 bug (#2735) (#2736)

  • 使 write_graph6 内存占用更少 (#2299)

  • all_simple_paths 不应返回环。修复问题 #2762 (#2770)

  • 修复 write_gml 中的拼写错误并新增测试 (#2769)

  • 修复 bug 并为不收敛的 fiedler_vector 新增检查 (#2681)

  • 来自 #1700 合并冲突的字典推导式 (#2768)

  • 修复 2763: networkx 教程文档中的拼写错误 furether (#2764)

  • 修复 #2726: 确保 add_path 添加第一个节点 (#2759)

  • 文档中的小更正 (#2751)

  • 子图和复制方法的加速 (#2744)

  • 修复教程中的拼写错误 (#2746)

  • 扩展有关强连通性的文档 (#2732)

  • 更正何时引发 NetworkXNotImplemented (#2731)

  • 从 _triangles_and_degree_iter 移除列表转换 (#2725)

  • nx_shp 修复 (#2721)

  • 从 union 文档中移除对 create_using 的引用 (#2722)

  • 在传递闭包算法中复制图 (#2718)

  • 修复 dag_longest_path bug (#2703)

  • 修复 inter_community_edges (#2713)

  • 修复 shortest_simple_paths。问题 #2427 (#2712)

  • 更新 migration_guide_from_1.x_to_2.0.rst (#2694)

  • 在 requirements/README.md 中提及 doc.txt (#2699)

  • 文档 (centrality/dispersion): 更新贡献者邮箱地址 (#2698)

  • 通过移除箭头标签修复 bug #2503 (#2696)

  • 新增网格图谱嵌入示例 (#2690)

  • 修复 nx.from_pandas_adjacency() 的 create_using (#2693)

  • 新增查找 k-边增强的函数 (#2572)

  • 从函数 networkx.drawing.nx_pydot.to_pydot 移除 arg strict (#2672)

  • 修复解析 graphml 中节点在组里的问题 (#2644)

  • 移除未使用导入 (#2653)

  • 改进子图节点迭代 (#2687)

  • 新增 Kamada-Kawai 函数到 Sphinx 文档 (#2680)

  • 解包 dict 以在从 shapefiles 创建节点时提供 kwargs (#2678)

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