一.库函数

networkx常用函数总结
用途 函数
读取文件/生成图 创建无向图 G = nx.Graph()
创建有向图 G = nx.DiGraph()
读取gml文件 G=nx.read_gml('karate.gml',label='id')
读取txt文件 G = nx.read_edgelist("Email-Enron.txt")
读取有权值的txt文件 nx.read_weighted_edgelist(data)
读取有权值的txt文件,并生成有向图 nx.read_weighted_edgelist(data, create_using=nx.DiGraph())
随机生成30个点,连接概率为0.05 G = nx.erdos_renyi_graph(30, 0.05)
添加结点/边 从列表中添加节点[a,b,c] G.add_nodes_from(node)
从列表中添加边[[a,b],[a,c]] G.add_edges_from(edge)
判断 判断两节点间是否有边 Graph.has_edge(uv)
记数 网络中结点的个数 G.number_of_nodes()
网络中边的个数 G.number_of_edges()
画图 画网络图 nx.draw_networkx(G)(显示标签)
获取节点信息 获取结点i的邻居节点 G.neighbors(i)  或   G[i](在有向图中输出的是出度的邻居,G[i]会输出权重)
输出k-shell为5的节点 nx.k_core(G,5).nodes
获取所有节点的度 G.degree()
获取某个节点的出度 G.out_degree(i)
获取节点i的属性 G.nodes[i]["wight"]
设置节点i的属性 G.nodes[i]["wight"]=0.1
为多个节点设置属性 nx.set_node_attributes(G, 'wight', {i:0.2, j:0.1})
查看图中所有点的信息 G.nodes.data()
获取边的信息 查看边的信息 G.edges['node1', 'node2‘]
查看图中所有边的信息 G.edges.data()
输出文件 将图输出为gephi文件 nx.write_gexf(G,'your_file_name.gexf')
将图输出为txt文件 nx.write_edgelist(G,"file_name.txt",data = False)

计算节点中心性

(关键节点识别)

度中心性 nx.degree_centrality(G)
特征向量中心性 nx.eigenvector_centrality(G)
特征向量中心性(大网络) nx.eigenvector_centrality_numpy(G)
介数中心性 nx.betweenness_centrality(G)
接近中心性 nx.closeness_centrality(G)
pagerank nx.pagerank(G)
HITS nx.hits(G)
最短路径/最短路径长度 两点间最短路径 nx.shortest_path(G,source=1,target=155)
两点间的最短路径长度 nx.shortest_path_length(G,source=1,target=155)
dijkstra路径 nx.dijkstra_path(G,1,155)
dijkstra路径长度 nx.dijkstra_path_length(G,1,155)
计算整个图的平均最短路径长度 nx.average_shortest_path_length(G)
当前节点与可达节点的最短路径 nx.single_source_shortest_path(G, 0) 
图中两两节点计算最短路径长度的 dict(nx.all_pairs_shortest_path(G))

二.自定义函数:

1.依一定概率连边

def rand_edge(vi,vj,p=0.2):     #默认概率p=0.2probability =random.random()#生成随机小数if(probability<p):G.add_edge(vi,vj)

2.计算模块度Q

partition:各社区的节点列表

例:[[1, 2, 3, 4, 8, 9, 13, 14, 18, 20, 22], [1, 17, 5, 6, 7, 11], [32, 33, 34, 3, 9, 15, 16, 19, 21, 23, 24, 27, 28, 29, 30, 31], [32, 25, 26]]

def cal_Q(partition,G): m = len(G.edges(None, False))a = []e = []for community in partition: t = 0.0for node in community: t += len([x for x in G.neighbors(node)])a.append(t/(2*m))for community in partition:t = 0.0for i in range(len(community)):for j in range(len(community)):if(G.has_edge(community[i], community[j])):t += 1.0e.append(t/(2*m))q = 0.0for ei,ai in zip(e,a):q += (ei - ai**2) return q 

3.python中的community包内置社区发现算法、数据集、模块度算法

4.将有权文件,转为无权

G = nx.read_weighted_edgelist("../dataset/advogato.txt")
nx.write_edgelist(G,"../dataset/advogato.txt",data = False)

5.删除网络中的自环

G.remove_edges_from(nx.selfloop_edges(G))

networkx常用函数总结(持续更新)相关推荐

  1. 工作中php遇到的问题以及常用函数整理(持续更新)

    说明 以下整理的文档是本人2017年从事php开发到目前遇到的问题的部分整理,因为上家公司有改错本这个东西,偶然间翻开,整理了一部分,后续遇到问题会持续更新,最新更新的内容会放到最前面. php开启错 ...

  2. Excel 数据分析之Power Pivot常用函数(持续更新)

    目录 RELATED函数 RELATEDTABLE RANK.EQ COUNTROWS CALCULATE DIVIDE RELATED函数 RELATED(ColumnName) RELATED(返 ...

  3. python常用函数(持续更新)

    1.abs() abs是 absolute 的缩写,它会返回数字的绝对值. abs(-3.14) 3.14 2.any() any()函数用于判断给定的可迭代参数是否全部为False.如全为False ...

  4. SAP HR 常用函数*持续更新中...

    1.1   DAY_ATTRIBUTES_GET                      获取两个日期间的每一天的属性值 1.2   FIMA_DAYS_AND_MONTHS_AND_YEARS   ...

  5. Oracle 常用函数总结(持续更新)

    LOWER:大写转小写 select LOWER('Hello Java') from dual 运行结果:hello java UPPER:小写转大写 select UPPER('Hello Jav ...

  6. NetworkX学习笔记【持续更新】

    NetworkX学习笔记[持续更新] 写在前面的话 学习资料 关于安装 写在前面的话 networkx是一个python包,用于创建.操作和研究复杂网络的结构.动态和功能.我最初是想找一找SDN路由算 ...

  7. linux常用指令(持续更新)

    linux常用指令(持续更新) 基本访问指令: 直接进入用户的home目录: cd ~ 进入上一个目录: cd - 进入当前目录的上一层目录: cd .. 进入当前目录的上两层目录: cd ../.. ...

  8. Android常用开发网址(持续更新)

    2019独角兽企业重金招聘Python工程师标准>>> Android常用开发网址(持续更新) 环境搭建 android镜像 http://www.androiddevtools.c ...

  9. 程序员常用英语积累---持续更新

    程序员常用英语积累---持续更新: Distribution: 分发 Direction    : 方向 Description: 描述 Destination: 目标 Definition   : ...

最新文章

  1. 裴健:搜索皆智能,智能皆搜索
  2. eeglab教程系列(8)-数据叠加平均{2}绘制2D和3D图
  3. 【数字信号处理】相关函数 ( 有限信号 | 有限信号的自相关函数 )
  4. C++ new和delete操作符
  5. Elasticsearch-04 ES中的术语和基本用法
  6. Mybatis-Dao层实现(通过代理方式)
  7. linux命令之watch -- 周期性地执行命令
  8. [html] DOM和BOM有什么区别?
  9. 负数乘以正数溢出问题
  10. 进入云原生、分布式的时代,什么才是数据库的正确打开方式
  11. Springboot+Mysql企业员工绩效工资管理系统
  12. python基础(八):进制转换及python中的进制转换方法
  13. 卫星电视的双本振,单本振及高频头相关知识普及
  14. 推箱子简易java代码_Java实现简单推箱子游戏
  15. app store无法下载、安装软件,一直在转圈的一个解决方法
  16. 模拟退火算法+大规模邻域算法求解大规模固定节点的路径规划问题matlab代码
  17. Error syncing pod, skipping: failed to “StartContainer“ for “POD“ with ErrImagePull: “image pull fai
  18. 安卓手机屏幕分辨率如何修改
  19. UVC 1.0 和 UVC 1.1的差别
  20. IDEA添加快捷注释功能

热门文章

  1. 利用R包ggmsa进行多序列比对_2020-05-31
  2. 项目难于管理的根本原因在于项目的”VUCA”特性
  3. 熬了一夜!我用Python做了一个网站,帮小姐姐生成漫画头像
  4. 5G QoS控制原理专题详解-基础概念
  5. 2 画图软件 界面设计
  6. 基于Core Text实现的TXT电子书阅读器
  7. freescale imx6最新版本bsp在天嵌imx6q开发板的移值
  8. Application做的单叶聊天室
  9. linux下查看服务器型号
  10. 集线器等(概念,工作原理,以及,应用场景)