无向加权网络图是一种由边连接起来的图,其中边有权值。在 Python 中,你可以使用各种不同的库来表示和操作无向加权网络图,例如 NetworkX、igraph 等。
在 NetworkX 中,你可以使用 Graph
类来表示无向加权网络图,并使用 add_edge
方法添加带权边。例如:
import networkx as nx# 创建一个空的无向加权网络图
G = nx.Graph()
# 添加带权边
G.add_edge('A', 'B', weight=2)
G.add_edge('B', 'C', weight=3)
G.add_edge('C', 'D', weight=1)
# 访问边的权值
print(G['A']['B']['weight']) # 2
在 igraph 中,你可以使用 Graph.TupleList
函数将边的列表传递给 Graph
构造函数,从而创建无向加权网络图。例如:
import igraph# 创建带权边的列表
edges = [
('A', 'B', 2),
('B', 'C', 3),
('C', 'D', 1)
]
# 创建无向加权网络图
G = igraph.Graph.TupleList(edges, directed=False)
# 访问边的权值
print(G.es[0]['weight']) # 2
无论是使用 NetworkX 还是 igraph,你都可以通过边的权值计算最短路径、最小生成树等。