Python 实例|network|计算中心度及子图计算中心度

import networkx生成样例图: graph = networkx.Graph()graph.add_nodes_from(["1", "2",
import networkx

生成样例图:

graph = networkx.Graph()
graph.add_nodes_from(["1", "2", "3", "4", "5", "6", "7"])
graph.add_edge("1", "2")
graph.add_edge("1", "3")
graph.add_edge("2", "3")
graph.add_edge("1", "4")
graph.add_edge("4", "5")
graph.add_edge("4", "6")
graph.add_edge("3", "7")

绘制样例图:

networkx.draw_networkx(graph)
plt.show()
plt.close()


Network 计算中心度:

>>> networkx.degree_centrality(graph)
{'1': 0.5, '2': 0.3333333333333333, '3': 0.5, '4': 0.5, '5': 0.16666666666666666, '6': 0.16666666666666666, '7': 0.16666666666666666}

删除 "1" 节点:

>>> graph.remove_node("1")

拆分子图并分别计算中心度:

>>> for component in networkx.connected_components(graph):
...     print(networkx.degree_centrality(graph.subgraph(component)))
{'2': 0.5, '3': 1.0, '7': 0.5}
{'4': 1.0, '5': 0.5, '6': 0.5}