SciPy 图结构学习笔记

在本文档中,我们将介绍如何使用 SciPy 库来创建、操作和分析图形结构。

创建图形

要创建一个空的无向图,您可以使用 networkx 库:

Copy Code
import networkx as nx G = nx.Graph()

如果要创建有向图,请改用 DiGraph() 函数。

要向图中添加节点和边,请使用以下命令:

Copy Code
G.add_node(1) G.add_edge(2, 3)

这将向图中添加一个带有 ID 1 的节点和连接节点 2 和 3 的一条边。

分析图形

要分析图形的属性,您可以使用以下命令:

Copy Code
print(nx.info(G))

这将输出有关图形的基本信息,例如节点数和边数。

要查找节点或边的特定属性,请使用以下命令:

Copy Code
G.nodes[1]['color'] = 'blue' G.edges[2, 3]['weight'] = 0.5

这将将颜色属性设置为“蓝色”并将权重属性设置为“0.5”。

要遍历图形中的节点或边,请使用以下命令:

Copy Code
for node in G.nodes: print(node) for edge in G.edges: print(edge)

这将打印出图形中所有节点和边的 ID。

实例

作为一个具体的示例,我们将创建一个小型社交网络图,并计算它的直径和平均路径长度。

Copy Code
G = 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 Code
Diameter: 2 Average path length: 1.3333333333333333

这表明社交网络的最长路径为 2,平均路径长度为 1.33。