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的使用相关推荐

  1. Python、Java、Scala、Go Package对照表

    格式转换类 分类 Python Java Scala Go Excel xlwt/xlrd, XlsxWriter POI - - PDF PyPDF2 Apache FOP - - CSV csvk ...

  2. 《python数据分析》

    612python数据分析书(2天) 第一章系统 import os os.getcwd() ##获取当前工作目录 os.chdir('F:/Projects/python/616python_dat ...

  3. 一文读懂Python复杂网络分析库networkx | CSDN博文精选

    作者 | yyl424525 来源 | CSDN博客 文章目录 1. 简介 安装 支持四种图 绘制网络图基本流程 2. Graph-无向图 节点 边 属性 有向图和无向图互转 3. DiGraph-有 ...

  4. python画网络关系 节点和边存在文件里_python复杂网络分析库NetworkX

    NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析.仿真建模等工作.networkx支持创建简单无向图.有向图和多重 ...

  5. Python 计算两个连通子图距离_复杂网络分析之python利器NetworkX

    点击蓝字 关注我们 1 networkx介绍 networkx在2002年5月产生,是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分 ...

  6. 社会网络分析工具—— Gephi 或 NetworkX的简单介绍和比较(源自GPTchat)

    文章目录 我的原始需求 两个工具介绍 二者比较 下载和使用 后续 使用教程 我的原始需求 如何对不同认知课堂的教师提问行为序列进 行社会网络分析,计算不同认知层级提问行为的中间 中心度和接近中心度, ...

  7. Python复杂网络分析库networkx 看这一篇就够了

    文章目录 1 基础知识 1.1 简介 1.2 Graph 添加节点 访问节点 删除节点 添加边 访问边 遍历边 生成小世界网络 生成规则网络 另一种规则图 ER随即图 BA无标度网络 喜欢的话请关注我 ...

  8. networkx edge 属性_一文读懂Python复杂网络分析库networkx | CSDN博文精选

    作者 | yyl424525 来源 | CSDN博客 文章目录 1. 简介 安装 支持四种图 绘制网络图基本流程 2. Graph-无向图 节点 边 属性 有向图和无向图互转 3. DiGraph-有 ...

  9. 复杂网络分析以及networkx学习

    原文地址:陈关荣老师整理的复杂网络的资源作者:zhengw789 http://www.ee.cityu.edu.hk/~gchen/ComplexNetworks.htm http://mrvar. ...

  10. python社会网络分析教授_科学网—python 社会网络分析工具之networkx - 郗强的博文...

    1.networkx 2.igraph 3.SNAP 1.networkx NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网 ...

最新文章

  1. hdu1816 + POJ 2723开锁(二分+2sat)
  2. 多媒体(1):MCI接口编程
  3. Swift之深入解析访问控制权限
  4. java里面value_「Java基础知识」Java中包含哪些运算符
  5. python生成范围内随机数_python在一个范围内取随机数的方法是什么
  6. 信号量优先级反转(翻转)与优先级继承
  7. 一、什么是类,一些关键字
  8. Spring 中的事务处理
  9. sendkeys安装包_利用Windows命令行解压zip压缩文件(不借助第三方软件)
  10. 知识关联视角下金融证券知识图谱构建与相关股票发现
  11. 矩阵旋转(翻转)刷题总结
  12. 【渝粤教育】电大中专电子商务网站建设与维护答案作业 题库
  13. 姚期智:为了中国计算机科学的腾飞(zz)
  14. 大学生急救新思维与户外模拟训练知识总结 2018年秋
  15. 零代码积木编程案例分享
  16. Mercurial command in bitbucket
  17. 灵感:从想法的天空到现实的地面
  18. 《给研究生的学术建议》13——研究设计
  19. HTML期末大作业~ 明星林依晨(7页)带留言 学生网页设计作业源码(HTML+CSS+JS)
  20. qt链接mysql文件失败_【成功经验】QT读取access 2010的.accdb文件总是失败

热门文章

  1. 配置git mergetool不产生*.orig文件
  2. 寻宝游戏(DFS+动态规划)
  3. 优化知乎使用体验+完整保存知乎文章、回答
  4. TCP的四次挥手为什么需要2MSL ?
  5. 央视国际节目定价发布接口规范C2
  6. Apple音视频播放器 QuickTime Player7.7.9 专业版
  7. Python 图算法系列2 -电影推荐
  8. matlab红外遥感温度反演,热红外遥感地表温度反演研究现状与发展趋势
  9. 建站用Windows还是Linux,建站该选择Windows系统还是Linux系统
  10. 网站优化关键词密度多少才是最合适的?