我在networkx中有一张庞大的图,想要获得每个节点深度为2的所有子图。是否有使用networkx内置函数的简便方法可以实现?
我在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()
networkx
中,这个函数方便地被称为ego_graph
。 - Paul Brodersen