SciPy 图结构学习笔记
在本文档中,我们将介绍如何使用 SciPy 库来创建、操作和分析图形结构。
创建图形
要创建一个空的无向图,您可以使用 networkx
库:
Copy Codeimport networkx as nx
G = nx.Graph()
如果要创建有向图,请改用 DiGraph()
函数。
要向图中添加节点和边,请使用以下命令:
Copy CodeG.add_node(1)
G.add_edge(2, 3)
这将向图中添加一个带有 ID 1 的节点和连接节点 2 和 3 的一条边。
分析图形
要分析图形的属性,您可以使用以下命令:
Copy Codeprint(nx.info(G))
这将输出有关图形的基本信息,例如节点数和边数。
要查找节点或边的特定属性,请使用以下命令:
Copy CodeG.nodes[1]['color'] = 'blue'
G.edges[2, 3]['weight'] = 0.5
这将将颜色属性设置为“蓝色”并将权重属性设置为“0.5”。
要遍历图形中的节点或边,请使用以下命令:
Copy Codefor node in G.nodes:
print(node)
for edge in G.edges:
print(edge)
这将打印出图形中所有节点和边的 ID。
实例
作为一个具体的示例,我们将创建一个小型社交网络图,并计算它的直径和平均路径长度。
Copy CodeG = nx.Graph()
G.add_node('Alice')
G.add_node('Bob')
G.add_node('Charlie')
G.add_node('Dave')
G.add_edge('Alice', 'Bob')
G.add_edge('Bob', 'Charlie')
G.add_edge('Charlie', 'Dave')
diameter = nx.diameter(G)
avg_path_length = nx.average_shortest_path_length(G)
print('Diameter:', diameter)
print('Average path length:', avg_path_length)
这将输出以下信息:
Copy CodeDiameter: 2
Average path length: 1.3333333333333333
这表明社交网络的最长路径为 2,平均路径长度为 1.33。