鄂尔多斯人义网络中的随机节点

Random node in an Erdos Renyi network

我是 networkx 的新手,我想从 erdos_renyi 图中提取一个随机节点,我正在使用这段代码,但我得到一个空列表

N = 1000 
p = 0.01 
G = nx.erdos_renyi_graph(N, p)
node = list(random.choice(G.nodes()))

您的调用顺序稍有偏差:

node = list(random.choice(G.nodes()))

G.nodes()是图的节点视图;你需要一个节点列表,G.nodes

node = [ random.choice(list(G.nodes)) ]

将节点视图变成一个列表,从中获取一个随机元素,然后将其填充到一个列表中(我不确定你为什么想要一个只有一个元素的列表)。

由于图中的节点都是0到999的整数,你也可以直接用random.randrange(N)来随机取一个节点。 在任意图上,您可以在调用 convert_node_labels_to_integers.

后执行相同的操作
import networkx as nx
import random

N = 1000
p = 0.01
G = nx.erdos_renyi_graph(N, p)
print(G.nodes())
# prints 0 to N - 1

node = [random.randrange(N)]