NetworkX 2.1#

发布日期:2018年1月22日

支持Python 2.7、3.4、3.5和3.6。

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

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

亮点#

此版本经过了四个月的工作,由37位贡献者提交了75个拉取请求。亮点包括:

  • 用于绘制有向图边的箭头得到了极大改进! 并提供了一个示例来展示它们。

  • 超过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'] ,但用户需要负责更新或更改它以用于复制、子图、并集和其他图操作。

改进#

  • 许多错误修复、文档更改。

  • 特别是对子图的速度改进。

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

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

API更改#

  • [ #2498 ] 在 geographical_threshold_graph 中,从NetworkX 2.1开始,参数 alpha 被弃用,替换为可定制的 p_dist 函数参数,默认为 r^-2,如果未提供 p_dist 。要复制早期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_adjacencyfrom_pandas_adjacencyto_pandas_edgelistfrom_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_subgraphsbiconnected_component_subgraphsattracting_component_subgraphsstrongly_connected_component_subgraphsweakly_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)

  • 添加 rooted product 函数 (#2825)

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

  • 更改变量名以避免 kwargs 覆盖 (#2824)

  • 最小循环基础 (#2823)

  • 弃用 component_subgraphs 函数 (#2819)

  • 暂时禁用 sphinx doctests (#2818)

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

  • 为 jit_graph 读取添加了有向图支持 (#2753)

  • 箭头作为绘图示例。 (#2801)

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

  • MRG:移除 to_pandas_dataframefrom_pandas_dataframe (#2811)

  • 修复Pydot测试,使其与新版本1.2.4兼容(#2815)

  • MRG:移除 bellman_ford (#2812)

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

  • NumPy 1.14+的遗留数组打印(#2810)

  • 修复稀有的结构上禁止映射的错误(#2798)

  • 有向图箭头以修复#2757(#2760)

  • 使用通用整数类型进行参数检查(#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参数的文档字符串(#2781)

  • 在.travis.yml中将osx_image更改为xcode 7.3(#2780)

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

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

  • 使用新模型更新几何网络(#2498)

  • [进行中]图编辑距离2361(#2729)

  • max_weight_matching返回边的集合(#2774)

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

  • 在spring布局中添加阈值选项(#2776)

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

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

  • 修复忽略SOURCE_DATE_EPOCH的错误(#2735)(#2736)

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

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

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

  • 修复错误并为不收敛的fiedler_vector添加检查(#2681)

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

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

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

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

  • subgraph和copy方法的加速(#2744)

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

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

  • 当我们引发NetworkXNotImplemented时进行更正(#2731)

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

  • nx_shp修复(#2721)

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

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

  • 修复dag_longest_path错误(#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 中删除参数 strict (#2672)

  • 修复解析具有节点组的graphml的问题(#2644)

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

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

  • 在Sphinx文档中添加Kamada-Kawai函数 (#2680)

  • 从shapefiles创建节点时,解压字典以提供kwargs (#2678)

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