NetworkX基本教程

NetworkX官方文档

# Upgrade packages
!pip install --upgrade scipy networkx

# Import the NetworkX package
import networkx as nx

1.图级别操作

# 建立无向图
G = nx.Graph()
print(G.is_directed())

# 建立有向图
H = nx.DiGraph()
print(H.is_directed())
# 添加图级别属性
G.graph["Name"] = "Bar"
print(G.graph)

2.点级别操作

# 添加点,附带属性
G.add_node(0, feature=5, label=0)

# 获取节点0的属性
node_0_attr = G.nodes[0]
print("Node 0 has the atrribute {}".format(node_0_attr))
# 图中所有节点信息
G.nodes(data=True)
# 添加多个节点
G.add_nodes_from([
    (1, {"feature": 1, "label": 1}),
    (2, {"feature": 2, "label": 2})
])
# 遍历所有节点
for node in G.nodes(data=True):
    print(node)
# 获取点的数量
num_nodes = G.number_of_nodes()
print("G has {} nodes".format(num_nodes))

3.边级别操作

# 添加权重为0.5的边(0,1)
G.add_edge(0, 1, weight=0.5)

# 获得边(0,1)的属性
edge_0_1_attr = G.edges[(0, 1)]
print("Edge (0,1) has the attributes {}".format(edge_0_1_attr))
# 添加多条边
G.add_edges_from([
    (1, 2, {"weight": 0.3}),
    (2, 0, {"weight": 0.1}),
])
# 遍历所有的边
for edge in G.edges():
    print(edge)
# 获得边的数量
num_edges = G.number_of_edges()
print("G has {} edges".format(num_edges))

4.图的可视化

nx.draw(G, with_labels = True)

5.节点度数和邻居节点

# 获取节点度数
node_id = 1
print("Node {} has degree {}".format(node_id, G.degree[node_id]))
# 获取节点邻居
node_id = 1
for neighbor in G.neighbors(node_id):
    print("Node {} has neighbor {}".format(node_id, neighbor))

6.计算节点的PageRank

num_nodes = 4
# 创建一个有向图(path_graph相当于生成的图是一条线)
G = nx.DiGraph(nx.path_graph(num_nodes))
nx.draw(G, with_labels = True)
# 计算pagerank
pr = nx.pagerank(G, alpha=0.8)
pr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vic.GoodLuck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值