networkx关于Graph的各种操作

Graph DiGraph MultiGraph
https://blog.csdn.net/moodytong/article/details/7491520

import networkx as nx
G=nx.Graph()
G.add_edge(1,2,weight=1)
G.add_edge(1,3,weight=1)
for ii ,jj,kk in G.edges(data="weight",default=1):print(ii,jj,kk)
nx.adjacency_matrix()

学过线性代数的都了解矩阵,在矩阵上的文章可做的很多,什么特征矩阵,单位矩阵等.grpah存储可以使用矩阵,比如graph的邻接矩阵,权重矩阵等,
这节主要是在等到graph后,如何快速得到这些信息.详细官方文档在这里

#定义图的节点和边
nodes=['0','1','2','3','4','5','a','b','c']
edges=[('0','0',1),('0','1',1),('0','5',1),('0','5',2),('1','2',3),('1','4',5),('2','1',7),('2','4',6),('a','b',0.5),('b','c',0.5),('c','a',0.5)] plt.subplots(1,2,figsize=(10,3)) #定义一个无向图和有向图
G1 = nx.Graph()
G1.add_nodes_from(nodes)
G1.add_weighted_edges_from(edges) G2 = nx.DiGraph()
G2.add_nodes_from(nodes)
G2.add_weighted_edges_from(edges) pos1=nx.circular_layout(G1)
pos2=nx.circular_layout(G2) #画出无向图和有向图
plt.subplot(121)
nx.draw(G1,pos1, with_labels=True, font_weight='bold')
plt.title('无向图',fontproperties=myfont)
plt.axis('on')
plt.xticks([])
plt.yticks([]) plt.subplot(122)
nx.draw(G2,pos2, with_labels=True, font_weight='bold')
plt.title('有向图',fontproperties=myfont)
plt.axis('on')
plt.xticks([])
plt.yticks([]) plt.show() #控制numpy输出小数位数
import numpy as np
np.set_printoptions(precision=3)  #邻接矩阵
A = nx.adjacency_matrix(G1)
print('邻接矩阵:\n',A.todense()) #关联矩阵
I = nx.incidence_matrix(G1)
print('\n关联矩阵:\n',I.todense()) #拉普拉斯矩阵
L=nx.laplacian_matrix(G1)
print('\n拉普拉斯矩阵:\n',L.todense()) #标准化的拉普拉斯矩阵
NL=nx.normalized_laplacian_matrix(G1)
print('\n标准化的拉普拉斯矩阵:\n',NL.todense()) #有向图拉普拉斯矩阵
DL=nx.directed_laplacian_matrix(G2)
print('\n有向拉普拉斯矩阵:\n',DL) #拉普拉斯算子的特征值
LS=nx.laplacian_spectrum(G1)
print('\n拉普拉斯算子的特征值:\n',LS) #邻接矩阵的特征值
AS=nx.adjacency_spectrum(G1)
print('\n邻接矩阵的特征值:\n',AS) #无向图的代数连通性
AC=nx.algebraic_connectivity(G1)
print('\n无向图的代数连通性:\n',AC) #图的光谱排序
SO=nx.spectral_ordering(G1)
print('\n图的光谱排序:\n',SO) #两个矩阵的解释看:https://blog.csdn.net/Hanging_Gardens/article/details/55670356 邻接矩阵: [[0.  0.  0.  0.  5.  0.  0.  0.  6. ] [0.  0.  0.  2.  0.  0.  0.  0.  0. ] [0.  0.  0.  0.  0.  0.5 0.5 0.  0. ] [0.  2.  0.  1.  1.  0.  0.  0.  0. ] [5.  0.  0.  1.  0.  0.  0.  0.  7. ] [0.  0.  0.5 0.  0.  0.  0.5 0.  0. ] [0.  0.  0.5 0.  0.  0.5 0.  0.  0. ] [0.  0.  0.  0.  0.  0.  0.  0.  0. ] [6.  0.  0.  0.  7.  0.  0.  0.  0. ]] 关联矩阵: [[1. 1. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 1. 1. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 1. 0. 0. 0.] [0. 1. 0. 0. 0. 1. 0. 1. 0.] [0. 0. 0. 1. 0. 0. 0. 0. 1.] [0. 0. 0. 0. 1. 0. 0. 0. 1.] [0. 0. 0. 0. 0. 0. 0. 0. 0.] [1. 0. 0. 0. 0. 0. 0. 1. 0.]] 拉普拉斯矩阵: [[11.   0.   0.   0.  -5.   0.   0.   0.  -6. ] [ 0.   2.   0.  -2.   0.   0.   0.   0.   0. ] [ 0.   0.   1.   0.   0.  -0.5 -0.5  0.   0. ] [ 0.  -2.   0.   3.  -1.   0.   0.   0.   0. ] [-5.   0.   0.  -1.  13.   0.   0.   0.  -7. ] [ 0.   0.  -0.5  0.   0.   1.  -0.5  0.   0. ] [ 0.   0.  -0.5  0.   0.  -0.5  1.   0.   0. ] [ 0.   0.   0.   0.   0.   0.   0.   0.   0. ] [-6.   0.   0.   0.  -7.   0.   0.   0.  13. ]] 标准化的拉普拉斯矩阵: [[ 1.     0.     0.     0.    -0.418  0.     0.     0.    -0.502] [ 0.     1.     0.    -0.707  0.     0.     0.     0.     0.   ] [ 0.     0.     1.     0.     0.    -0.5   -0.5    0.     0.   ] [ 0.    -0.707  0.     0.75  -0.139  0.     0.     0.     0.   ] [-0.418  0.     0.    -0.139  1.     0.     0.     0.    -0.538] [ 0.     0.    -0.5    0.     0.     1.    -0.5    0.     0.   ] [ 0.     0.    -0.5    0.     0.    -0.5    1.     0.     0.   ] [ 0.     0.     0.     0.     0.     0.     0.     0.     0.   ] [-0.502  0.     0.     0.    -0.538  0.     0.     0.     1.   ]] 有向拉普拉斯矩阵: [[ 0.889 -0.117 -0.029 -0.087 -0.319 -0.029 -0.029 -0.129 -0.242] [-0.117  0.889 -0.026 -0.278 -0.051 -0.026 -0.026 -0.114 -0.056] [-0.029 -0.026  0.994 -0.012 -0.009 -0.481 -0.481 -0.025 -0.01 ] [-0.087 -0.278 -0.012  0.757 -0.097 -0.012 -0.012 -0.052 -0.006] [-0.319 -0.051 -0.009 -0.097  0.994 -0.009 -0.009 -0.041 -0.434] [-0.029 -0.026 -0.481 -0.012 -0.009  0.994 -0.481 -0.025 -0.01 ] [-0.029 -0.026 -0.481 -0.012 -0.009 -0.481  0.994 -0.025 -0.01 ] [-0.129 -0.114 -0.025 -0.052 -0.041 -0.025 -0.025  0.889 -0.045] [-0.242 -0.056 -0.01  -0.006 -0.434 -0.01  -0.01  -0.045  0.994]] 拉普拉斯算子的特征值: [-1.436e-15  0.000e+00  4.610e-16  7.000e-01  1.500e+00  1.500e+00 4.576e+00  1.660e+01  2.013e+01] 邻接矩阵的特征值: [12.068+0.000e+00j  2.588+0.000e+00j -7.219+0.000e+00j -4.925+0.000e+00j -1.513+0.000e+00j  1.   +0.000e+00j -0.5  +2.393e-17j -0.5  -2.393e-17j0.  +0.000e+00j] 无向图的代数连通性: 0.0 图的光谱排序: ['4', '2', '1', '0', '5', 'b', 'c', 'a', '3']

networkx关于Graph的各种操作相关推荐

  1. PyG-使用networkx对Graph进行可视化

    代码 方法一 根据networkx的文档: https://networkx.github.io/documentation/networkx-1.10/reference/generated/net ...

  2. 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(3)

    你可以调整graph的构造参数来指定partition的数量. 当数据加载完毕的时候整个web-Googel.txt就缓存进了内存之中,如下所示: 可以看到数据被缓存成了edges. 下面我们使用把m ...

  3. 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(2)

    Spark-shell启动后我们可以在控制台看到起运行信息: 点击作业ID即可查看Spark shell运行信息: 下面我们就开始在集群上通过读取hdfs文件的方式来构建graph对象,首先要做的就是 ...

  4. 【SharePoint】通过Microsoft Graph Rest Api操作SharePoint时如何获取SharePoint站点的WebID, SiteID and ListID

    前言 在SharePoint项目中有时候需要使用Microsoft Graph Rest Api接口,在调用Microsoft Graph接口时,需要提供SharePoint WebID, SiteI ...

  5. NetworkX系列教程(1)-创建graph

    小书匠Graph图论 研究中经常涉及到图论的相关知识,而且常常面对某些术语时,根本不知道在说什么.前不久接触了NetworkX这个graph处理工具,发现这个工具已经解决绝大部分的图论问题(也许只是我 ...

  6. python库整理:networkx 包

    1 创建图形 创建一个没有节点和边的空图形. import networkx as nx G = nx.Graph() 根据定义,Graph是一组节点(顶点)和已识别的节点对(称为边.链接等)的集合. ...

  7. Python数模笔记-NetworkX(4)最小生成树

    1.生成树和最小生成树 1.1 生成树 连通的无圈图称为树,就是不包含循环的回路的连通图. 对于无向连通图,生成树(Spanning tree)是原图的极小连通子图,它包含原图中的所有 n 个顶点,并 ...

  8. Python NetworkX – Python图形库

    Python NetworkX module allows us to create, manipulate, and study structure, functions, and dynamics ...

  9. Python networkx库

    NetworkX 是用于创建.操作复杂图数据结构的 Python 包. 安装: pip install networkx 1. 增删节点和边 import networkx as nxG = nx.G ...

最新文章

  1. 【联邦学习】FATE 集群部署 step3
  2. php进程SIGBUS,SIGSEGV错误
  3. Oracle入门(十二G)之序列
  4. jQuery: 插件开发模式详解 $.extend(), $.fn, $.widget()
  5. 英伟达吞并ARM的交易计划失败!
  6. VS2013过期激活,VS2013激活,vs2013序列号,VS2013密钥,VS013产品密匙
  7. 软考 java程序设计,软考程序员考点Java语言程序设计之数组
  8. 【github】-MM-Wiki初体验
  9. cad阀门插件lisp_cad lisp程序中看不出怎么输入命令
  10. Vertica的这些事(四)—— 关于vertica常用函数介绍(持续更新ing)
  11. js数组、数组嵌套根据某个字段排序(eachart图标双击事件、vue双击)
  12. WEB安全——CS中Beacon的使用
  13. python递归算法解决兔子繁殖问题_经典生兔子问题——递归方法
  14. Kubernetes K8s 结合国内外文章解决 The kubelet is not running
  15. 音游手台中--EC11编码器的控制[2]
  16. win10 设置滑动关机以及修改图片为ico格式
  17. JDK和KRE安装及其区别
  18. Kubernetes弃用Docker?关于Kubernetes、Docker和containerd的那些事
  19. Python爬虫爬取笔趣阁小说
  20. 力扣1845——座位预约管理系统(优先队列)

热门文章

  1. 图书馆计算机书籍入门,数字化阅读空间 | 想要从零开始学电脑,却不知道该从哪入手?...
  2. 超级面试题2019年6月第1次发布
  3. 使用加密锁如何防止软件被破解
  4. 装饰宝典必看 细数开关插座惋惜TOP10
  5. 使用dobot magician遇到的问题
  6. 42㎡小户型变形记,为一对程序员情侣,改造时尚复古小宅
  7. html网页制作实例ppt,HTML网页制作.ppt
  8. ARM芯片开发(S5PV210芯片)——定时器、看门狗、RTC
  9. wince7 屏幕控制_触摸屏控制方法,个人总结(欢迎拍砖,但不要打脸)
  10. 大连英语四六级百家外语10个让你四六级听力涨分的小技巧