我在 networkx 中有一个巨大的图,我想从每个节点获取深度为 2 的所有子图。有没有一种很好的方法可以使用 networkx 中的内置函数来做到这一点?
正如我在评论中所说,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)