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