Python NetworkX使用1——基础

Python NetworkX使用1——基础

一. 创建图

import networkx as nx
G = nx.Graph()

二. 基本操作

1. Node

G.add_node(1) # 添加点1
G.add_nodes_from([2,3]) # 通过列表添加点2和3
G.number_of_nodes() # 查看有多少点
list(G.nodes()) # 列出点
list(G.adj[1]) # 列出点1的邻居

2. Edge

G.add_dege(2,3) # 在点2和3之间添加一条边
e = (2, 3)
G.add_edge(*e) # 通过元组的方式添加边
G.add_edges_from([(1, 2), (1, 3)]) # 通过列表的方式添加边
G.number_of_edges() # 查看有多少条边
list(G.edges()) # 列出边 或者使用 list(G.neighbors())

3. Delete

G.clear() # 将图G删除
G.remove_node(2) # 将点2删除
G.remove_nodes_from([1, 3]) # 通过列表删除点
G.remove_edge(1, 3) # 删除1和3之间的边

4. Degree

G.degree[1] # 查看点1的度数

三. 增添属性

1. 简单的属性添加

G.add_edge(1, 3)
G[1][3]['color'] = "blue"
G.edges[1, 2]['color'] = "red"
G.add_weighted_edges_from([(1, 2, 0.125), (1, 3, 0.75)] # 添加带权重的边

2. 权重及遍历

可以使用`G.adjacency()`和`G.adj.items()`进行节点的快速遍历

FG = nx.Graph
FG.add_weighted_edges_from([(1, 2, 0.125), (1, 3, 0.75), (2, 4, 1.2), (3, 4,0.375)])
for n, nbrs in FG.adj.items():
    for nbr, eattr in nbrs.items():
        wt = eattr['weight']
        if wt < 0.5: print('(%d, %d, %.3f)' % (n, nbr, wt))
"""
(1, 2, 0.125)
(2, 1, 0.125)
(3, 4, 0.375)
(4, 3, 0.375)
"""
# 另一种快速遍历边属性的方法
for (u, v, wt) in FG.edges.data('weight'):
    if wt < 0.5: print('(%d, %d, %.3f)'%(u, v, wt))
"""
(1, 2, 0.125)
(3, 4, 0.375)
"""
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值