复杂网络分析——networkx的使用
1. 基本图操作
导包
import networkx as nx
import matplotlib.pyplot as plt
建立一个空的无向图G
G = nx.Graph() # DiGraph() 有向图
添加一个节点a
G.add_node('a')
加点集合
G.add_nodes_from(['b','c','d','e'])
加边
G.add_edge('a','b')
G.add_edges_from([('b','c'),('a','d')])
2. 其他方法
1.节点数量
print("01. 图G的节点数:",G.number_of_nodes())
2. 输出全部的节点
print("02. 图G的全部节点:",G.nodes())
3. 输出全部的边
print("03. 图G的全部边:",G.edges())
4. 输出边的数量
print("04. 图G的边数:",G.number_of_edges())
5. 检查节点n是否在G中,如在,返回true。
print("05. 节点n是否在G中:", 'n' in G)
6. 图中各节点的度
print("06. 图G的各节点的度:",nx.degree(G))
7. 图中单个节点的度
print("07. 节点a的度:",nx.degree(G,'a'))
8. 图G的度频率
print("08. 图G的度频率:",nx.degree_histogram(G))
9. 图G的密度 [无向]:d = 2m/n(n-1) [有向]:d=m/n(n-1)
print("09. 图G的密度:",nx.density(G))
10. 图G的信息
print("10. 图G的信息:",nx.info(G))
11. 返回删除所有边的图G的副本
G_1 = nx.create_empty_copy(G)
12. 判断图G是否是有向图
print("12. 图G是否是有向图:",nx.is_directed(G))
13. 返回无向图G的 有向图视图
G_2 = nx.to_directed(G)
14. 返回有向图G的 无向图视图
G_3 = nx.to_undirected(G_2)
15. 图G是否是空图,即图G是否无边
print("15. 图G是否没有边:",nx.is_empty(G))
16. 给图G 添加/设置 中心节点,中心节点与其他节点序列均有边相连,序列中第一个节点为中心节点
G_4 = nx.Graph()
nx.add_star(G_4,['a','c','b','e','d'])
G_4.add_node('f')
G_4.add_edge('f','c')
17. 给图G 添加/设置 一条路径,路径顺序为节点序列顺序
G_5 = nx.DiGraph() # 有向图
nx.add_path(G_5,['a','b','c','d','e'])
18. 给图G 添加/设置 环
G_6 = nx.DiGraph() # 有向图
nx.add_cycle(G_6,['a','b','c','d','e'])
19. 子图
G_7 = nx.subgraph(G_6,['a','b','c'])
20. 图G 去掉特定点和边
G_8 = nx.cycle_graph(['a','b','c','d','e']) # 产生一个无向环
G_8 = nx.restricted_view(G_8, ['e'], [('c', 'd'), ('a', 'b')])
21. 图G 改变所有边的方向
G_9 = nx.DiGraph()
nx.add_path(G_9,['a','b','c','d','e'])
G_9 = nx.reverse_view(G_9)
22. 图G 返回由指定边组成的子图
G_10 = nx.path_graph(['a','b','c','d','e'])
G_10 = G_10.edge_subgraph([('b', 'c'), ('d', 'e')])
23. 邻居节点
print("23. 星型图G_4中心节点a的邻居节点",list(nx.neighbors(G_4,'a')))
24. 非邻居节点
print("24. 星型图G_4中心节点a的非邻居节点",list(nx.non_neighbors(G_4,'a')))
25. 共同邻居节点
G_11 = nx.complete_graph(['a','b','c','d','e']) # 完全图
print("25. 节点a和节点c的 共同邻居节点",list(nx.common_neighbors(G_11,'a','c')))
26. 返回图中不存在的边
G_12 = nx.create_empty_copy(G_11) # 将完全图中的边全部去掉
print("26. 图G_12中不存在的边:",list(nx.non_edges(G_12)))
27. 返回图中自环的边
G_13 = nx.MultiDiGraph() # or Graph, DiGraph, MultiDiGraph, etc
G_13.add_nodes_from(['a','b'])
G_13.add_edge('a', 'a')
G_13.add_edge('a', 'b')
print("27. 图G_13中存在自环的边:",list(nx.selfloop_edges(G_13)))
28. 图中自环的数量
print("28. 图G_13中自环的数量:",nx.number_of_selfloops(G_13))
29. 图中存在自环的节点
print("29. 图G_13中存在自环的节点:",list(nx.nodes_with_selfloops(G_13)))
30. 判断是否存在加权边
G_14 = nx.DiGraph()
G_14.add_edge('a', 'b', weight=1)
print("30. 图G_14是否存在有权边:",nx.is_weighted(G_14))
31. 判断是否存在权值为负的边
G_15 = nx.DiGraph()
edges = [("a", "b", 3), ("b", "c", -5), ("c", "d", -2)]
G_15.add_weighted_edges_from(edges)
print("31. 图G_14是否存在权值为负的边:",nx.is_negatively_weighted(G_15))
32. 判断是否路径是否存在
print("32. 图G_4中是否存在c-a-b的路径:",nx.is_path(G_4,['c','a','b']))
33. 计算指定路径的权值
print("31. 图G_15中a-d路径的权值:",nx.path_weight(G_15,['a','b','c','d'],'weight'))
34. ER随机图 【fast_gnp_random_graph /// erdos_renyi_graph 】
G_er = nx.fast_gnp_random_graph(n=10, p=0.35, directed=True) # n:节点个数 p: 边存在的概率 directed: 是否有向图
35. WS小世界网络
G_ws = nx.watts_strogatz_graph(n=10, k=4, p=0.21) # n:节点个数 k: 与附件k个节点相连 p: 随机重连概率
36. BA无标度网络
G_ba = nx.barabasi_albert_graph(n=300, m=1) # n:节点个数 m: 新节点连接到现有节点的边数
复杂网络分析——networkx的使用相关推荐
- Python、Java、Scala、Go Package对照表
格式转换类 分类 Python Java Scala Go Excel xlwt/xlrd, XlsxWriter POI - - PDF PyPDF2 Apache FOP - - CSV csvk ...
- 《python数据分析》
612python数据分析书(2天) 第一章系统 import os os.getcwd() ##获取当前工作目录 os.chdir('F:/Projects/python/616python_dat ...
- 一文读懂Python复杂网络分析库networkx | CSDN博文精选
作者 | yyl424525 来源 | CSDN博客 文章目录 1. 简介 安装 支持四种图 绘制网络图基本流程 2. Graph-无向图 节点 边 属性 有向图和无向图互转 3. DiGraph-有 ...
- python画网络关系 节点和边存在文件里_python复杂网络分析库NetworkX
NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析.仿真建模等工作.networkx支持创建简单无向图.有向图和多重 ...
- Python 计算两个连通子图距离_复杂网络分析之python利器NetworkX
点击蓝字 关注我们 1 networkx介绍 networkx在2002年5月产生,是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分 ...
- 社会网络分析工具—— Gephi 或 NetworkX的简单介绍和比较(源自GPTchat)
文章目录 我的原始需求 两个工具介绍 二者比较 下载和使用 后续 使用教程 我的原始需求 如何对不同认知课堂的教师提问行为序列进 行社会网络分析,计算不同认知层级提问行为的中间 中心度和接近中心度, ...
- Python复杂网络分析库networkx 看这一篇就够了
文章目录 1 基础知识 1.1 简介 1.2 Graph 添加节点 访问节点 删除节点 添加边 访问边 遍历边 生成小世界网络 生成规则网络 另一种规则图 ER随即图 BA无标度网络 喜欢的话请关注我 ...
- networkx edge 属性_一文读懂Python复杂网络分析库networkx | CSDN博文精选
作者 | yyl424525 来源 | CSDN博客 文章目录 1. 简介 安装 支持四种图 绘制网络图基本流程 2. Graph-无向图 节点 边 属性 有向图和无向图互转 3. DiGraph-有 ...
- 复杂网络分析以及networkx学习
原文地址:陈关荣老师整理的复杂网络的资源作者:zhengw789 http://www.ee.cityu.edu.hk/~gchen/ComplexNetworks.htm http://mrvar. ...
- python社会网络分析教授_科学网—python 社会网络分析工具之networkx - 郗强的博文...
1.networkx 2.igraph 3.SNAP 1.networkx NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网 ...
最新文章
- hdu1816 + POJ 2723开锁(二分+2sat)
- 多媒体(1):MCI接口编程
- Swift之深入解析访问控制权限
- java里面value_「Java基础知识」Java中包含哪些运算符
- python生成范围内随机数_python在一个范围内取随机数的方法是什么
- 信号量优先级反转(翻转)与优先级继承
- 一、什么是类,一些关键字
- Spring 中的事务处理
- sendkeys安装包_利用Windows命令行解压zip压缩文件(不借助第三方软件)
- 知识关联视角下金融证券知识图谱构建与相关股票发现
- 矩阵旋转(翻转)刷题总结
- 【渝粤教育】电大中专电子商务网站建设与维护答案作业 题库
- 姚期智:为了中国计算机科学的腾飞(zz)
- 大学生急救新思维与户外模拟训练知识总结 2018年秋
- 零代码积木编程案例分享
- Mercurial command in bitbucket
- 灵感:从想法的天空到现实的地面
- 《给研究生的学术建议》13——研究设计
- HTML期末大作业~ 明星林依晨(7页)带留言 学生网页设计作业源码(HTML+CSS+JS)
- qt链接mysql文件失败_【成功经验】QT读取access 2010的.accdb文件总是失败
热门文章
- 配置git mergetool不产生*.orig文件
- 寻宝游戏(DFS+动态规划)
- 优化知乎使用体验+完整保存知乎文章、回答
- TCP的四次挥手为什么需要2MSL ?
- 央视国际节目定价发布接口规范C2
- Apple音视频播放器 QuickTime Player7.7.9 专业版
- Python 图算法系列2 -电影推荐
- matlab红外遥感温度反演,热红外遥感地表温度反演研究现状与发展趋势
- 建站用Windows还是Linux,建站该选择Windows系统还是Linux系统
- 网站优化关键词密度多少才是最合适的?