networkx 点的属性_networkx(图论)的基本操作

本文介绍了使用networkx库进行图论操作的基础和进阶用法,包括创建无向图和有向图,加权图的处理,最小生成树,最短路径计算,节点可达性分析,最大流和最小成本流问题,欧拉回路判断,拓扑排序,以及复杂网络如ER随机图、WS小世界网络和BA无标度网络的生成。通过实例展示了networkx的强大功能。
摘要由CSDN通过智能技术生成

import networkx as nx

oo = float('inf')

# 创建无向图

G = nx.Graph()

G.add_node(1) # 添加节点1

G.add_edge(2,3) # 添加节点2,3并链接23节点

print(G.nodes, G.edges, G.number_of_nodes(), G.number_of_edges())

# 创建有向图

G = nx.DiGraph()

G.add_edge(2, 3)

G.add_edge(3, 2)

G.to_undirected() # 转换成无向图

print(G.edges)

# 加权图

G = nx.DiGraph()

G.add_weighted_edges_from([(0,1,3.0), (1,2,7.5)]) # 给01边加权3, 12边加权7.5

print(G.get_edge_data(1,2)) # 获得12边的属性

G.add_weighted_edges_from([(2,3,5)], weight='color')

print(G.edges.data())

G.node[1]['size'] = 10

print(G.nodes.data())

import matplotlib.pyplot as plt

g_data = [(1, 2, 6), (1, 3, 1), (1, 4, 5),

(2, 3, 5), (2, 5, 3),

(3, 4, 5), (3, 5, 6), (3, 6, 4), (4, 6, 2),

(5, 6, 6)]

# 最小生成树

g = nx.Graph()

g.add_weighted_edges_from(g_data)

tree = nx.minimum_spanning_tree(g, algorithm='prim')

print(tree.edges(data=True))

# 最短路径

G = nx.path_graph(5) # 0-1-2-3-4链

print(nx.dijkstra_path(G, 0, 4))

# 所有节点之间的最短路径

G = nx.Graph()

G.add_weighted_edges_from(g_da

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值