number_of_walks#
- number_of_walks(G, walk_length)[源代码]#
返回图中每对节点之间连接的游走数量
G
游走(walk)是节点序列,其中序列中每对相邻节点在图上也是相邻的。游走可以重复相同的边并沿相反方向前进,就像人们可以在一组路径上行走一样,但原地不动不计入游走。
此函数仅计算长度为
walk_length
的游走。请注意,游走序列中的节点数量比walk_length
多一个。在较大的图和较长的游走长度下,游走数量会增长得非常快。- 参数:
- GNetworkX 图
- walk_lengthint
一个非负整数,表示游走的长度。
- 返回值:
- dict
一个字典的字典,其中外部键是源节点,内部键是目标节点,内部值是连接这些节点的长度为
walk_length
的游走数量。
- 抛出:
- ValueError
如果
walk_length
为负数
示例
>>> G = nx.Graph([(0, 1), (1, 2)]) >>> walks = nx.number_of_walks(G, 2) >>> walks {0: {0: 1, 1: 0, 2: 1}, 1: {0: 0, 1: 2, 2: 0}, 2: {0: 1, 1: 0, 2: 1}} >>> total_walks = sum(sum(tgts.values()) for _, tgts in walks.items())
你也可以使用返回的字典获取从特定源节点出发的游走数量。例如,可以如下找到从节点 0 出发长度为 1 的游走数量
>>> walks = nx.number_of_walks(G, 1) >>> walks[0] {0: 0, 1: 1, 2: 0} >>> sum(walks[0].values()) # walks from 0 of length 1 1
同样,也可以指定目标节点
>>> walks[0][1] 1