查找深度 2 Networkx 的所有子图

use*_*213 3 networkx

我在 networkx 中有一个巨大的图,我想从每个节点获取深度为 2 的所有子图。有没有一种很好的方法可以使用 networkx 中的内置函数来做到这一点?

Pau*_*sen 6

正如我在评论中所说,networkx.ego_graph符合要求。您只需要确保将半径设置为 2(默认为 1):

import numpy as np
import matplotlib.pyplot as plt
import networkx as nx

# create some test graph
graph = nx.erdos_renyi_graph(1000, 0.005)

# create an ego-graph for some node
node = 0
ego_graph = nx.ego_graph(graph, node, radius=2)

# plot to check
nx.draw(ego_graph); plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明