使用网络,如何在有向图中找到第一个节点

With networks, how to find first node(s) in a DiGraph

使用网络,这是在有向图上找到第一个节点的直接方法。

可能不止一个,也没有孤立的节点。 第一个节点我的意思是没有祖先的节点。

致以最诚挚的问候,并提前致谢, 巴勃罗

你可以看看in_degree。没有边指向它的节点将具有 in_degree 0.

# make dummy graph
nodes = np.arange(10)
edges = [np.random.choice(nodes, 2) for a in range(10)]

G = nx.DiGraph()

G.add_nodes_from(nodes)
G.add_edges_from(edges)

# find the nodes whose in_degree is 0
[node for node, in_degree  in G.in_degree if in_degree==0]