NetworkX 2.2#
发布日期:2018 年 9 月 19 日
支持 Python 2.7、3.5、3.6 和 3.7。这是最后一个支持 Python 2 的版本。
NetworkX 是一个 Python 包,用于创建、操作和研究复杂网络的结构、动态和功能。
如需更多信息,请访问我们的网站和示例画廊。请将评论和问题发送到networkx-discuss 邮件列表。
亮点#
此版本是 58 位贡献者经过 8 个月的工作、超过 149 次提交的成果。亮点包括
新增对 Python 3.7 的支持。这是最后一个支持 Python 2 的版本。
统一随机数生成器 (RNG) 处理,默认使用全局 RNG,但也允许为 NX 中的所有随机数指定一个单独的 RNG。
改进了 GraphViews,以简化子类化并移除导致 deepcopy 和 pickle 出现问题的循环引用。
新的 Graph 方法
G.update(H)
改进#
现在每个使用随机数的函数都使用一个 seed
参数来控制随机数生成 (RNG)。默认情况下使用全局默认 RNG。更准确地说,是 random
包的默认 RNG 或 numpy.random 的默认 RNG。您也可以创建自己的 RNG 并将其作为 seed
参数传入。最后,您可以使用一个整数来指定要为 RNG 设置的状态。在这种情况下,会创建一个本地 RNG,而不会触及全局 RNG。有些函数使用 random
,有些使用 numpy.random
,但我们编写了一个转换器,使得所有函数都可以接受一个 numpy.random.RandomState
对象。因此,整个包可以使用同一个 RNG。
移除了图类和视图之间的循环引用,以简化子类化并避免内存泄漏。图不再持有对视图的引用。
通过移除 G.root_graph,移除了图和自身之间的循环引用。事实证明,无论如何这都是一个可以避免的构造。
GraphViews 已被重构为函数,这解决了子类在使用 copy/to_directed/subgraph 方法时遇到的许多问题。这也简化了图视图的代码库和 API。现在有三个函数可以创建图视图:generic_graph_view(graph, create_using)、reverse_view(digraph) 和 subgraph_view(graph, node_filter, edge_filter)。
现在可以使用 numpy 数值类型来编写带有属性的 GraphML。特别是 np.float64 和 np.int64 不再需要转换为 Python float 和 int 即可写入。它们仍然被写为通用浮点数,因此读回时不会产生 numpy 值。
现在可以使用遵循随机块模型的生成器。
新的函数 all_topological_sort
,用于生成所有可能的拓扑排序。
新的树宽度和树分解函数。
用于 Clauset-Newman-Moore 模块度最大化社区检测的函数。
用于小世界分析、有向聚类和完美匹配、欧拉化图、深度限制 BFS、渗流中心性、平面性检查的函数。
shortest_path 通用函数和便捷函数现在有一个 method
参数,用于在加权情况下选择 dijkstra 或 bellman-ford。默认是 dijkstra(之前是唯一的选项)。
API 变更#
empty_graph 已取代已移除的 nx.convert._prep_create_using 的功能。
现在 create_using
参数(在许多函数中使用)应该是一个 Graph 构造函数,例如 nx.Graph 或 nx.DiGraph。它仍然可以是图实例,在使用前会被清除,但首选的用法是构造函数。
新的基类方法:update H.update(G) 将 G 的节点、边和图属性添加到 H 中。H.update(edges=e, nodes=n) 添加容器 e 和 n 中的边和节点。H.update(e) 和 H.update(nodes=n) 也被允许。如果第一个参数具有 edges
和 nodes
属性,则将其视为图。否则,第一个参数被视为边列表。
bellman_ford 前驱字典中,源节点的哨兵值为 [None]
。这已更改,现在源节点的前驱值为 ‘[]’。
弃用#
图类方法 fresh_copy
- 直接使用 __class__
即可。GraphView 类已被弃用,推荐使用函数接口。具体来说,ReverseView
和 ReverseMultiView
已被 reverse_view
取代。SubGraph
、SubDiGraph
、SubMultiGraph
和 SubMultiDiGraph
已被 subgraph_view
取代。而 GraphView
、DiGraphView
、MultiGraphView
、MultiDiGraphView
已被弃用,推荐使用 generic_graph_view(graph, create_using)
。
贡献者#
Luca Baldesi
William Bernoudy
Alexander Condello
Saurav Das
Dormir30
Graham Fetterman
Robert Gmyr
Thomas Grainger
Benjamin M. Gyori
Ramiro Gómez
Darío Hereñú
Mads Jensen
Michael Johnson
Pranay Kanwar
Aabir Abubaker Kar
Jacek Karwowski
Mohammed Kashif
David Kraeutmann
Winni Kretzschmar
Ivan Laković
Daniel Leicht
Katrin Leinweber
Alexander Lenail
Lonnen
Ji Ma
Erwan Le Merrer
Jarrod Millman
Baurzhan Muftakhidinov
Neil
Jens P
Edward L Platt
Guillaume Plique
Miguel Sozinho Ramalho
Lewis Robbins
Romain
Federico Rosato
Tom Russell
Dan Schult
Gabe Schwartz
Aaron Smith
Leo Torres
Martin Váňa
Ruaridh Williamson
Huon Wilson
Haochen Wu
Yuto Yamaguchi
Felix Yan
Jean-Gabriel Young
aparamon
armando1793
aweltsch
chebee7i
hongshaoyang
komo-fr
leamingrad
luzpaz
mtrenfield
regstrtn