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(u, v) |
记数 | 网络中结点的个数 | 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常用函数总结(持续更新)相关推荐
- 工作中php遇到的问题以及常用函数整理(持续更新)
说明 以下整理的文档是本人2017年从事php开发到目前遇到的问题的部分整理,因为上家公司有改错本这个东西,偶然间翻开,整理了一部分,后续遇到问题会持续更新,最新更新的内容会放到最前面. php开启错 ...
- Excel 数据分析之Power Pivot常用函数(持续更新)
目录 RELATED函数 RELATEDTABLE RANK.EQ COUNTROWS CALCULATE DIVIDE RELATED函数 RELATED(ColumnName) RELATED(返 ...
- python常用函数(持续更新)
1.abs() abs是 absolute 的缩写,它会返回数字的绝对值. abs(-3.14) 3.14 2.any() any()函数用于判断给定的可迭代参数是否全部为False.如全为False ...
- SAP HR 常用函数*持续更新中...
1.1 DAY_ATTRIBUTES_GET 获取两个日期间的每一天的属性值 1.2 FIMA_DAYS_AND_MONTHS_AND_YEARS ...
- Oracle 常用函数总结(持续更新)
LOWER:大写转小写 select LOWER('Hello Java') from dual 运行结果:hello java UPPER:小写转大写 select UPPER('Hello Jav ...
- NetworkX学习笔记【持续更新】
NetworkX学习笔记[持续更新] 写在前面的话 学习资料 关于安装 写在前面的话 networkx是一个python包,用于创建.操作和研究复杂网络的结构.动态和功能.我最初是想找一找SDN路由算 ...
- linux常用指令(持续更新)
linux常用指令(持续更新) 基本访问指令: 直接进入用户的home目录: cd ~ 进入上一个目录: cd - 进入当前目录的上一层目录: cd .. 进入当前目录的上两层目录: cd ../.. ...
- Android常用开发网址(持续更新)
2019独角兽企业重金招聘Python工程师标准>>> Android常用开发网址(持续更新) 环境搭建 android镜像 http://www.androiddevtools.c ...
- 程序员常用英语积累---持续更新
程序员常用英语积累---持续更新: Distribution: 分发 Direction : 方向 Description: 描述 Destination: 目标 Definition : ...
最新文章
- 裴健:搜索皆智能,智能皆搜索
- eeglab教程系列(8)-数据叠加平均{2}绘制2D和3D图
- 【数字信号处理】相关函数 ( 有限信号 | 有限信号的自相关函数 )
- C++ new和delete操作符
- Elasticsearch-04 ES中的术语和基本用法
- Mybatis-Dao层实现(通过代理方式)
- linux命令之watch -- 周期性地执行命令
- [html] DOM和BOM有什么区别?
- 负数乘以正数溢出问题
- 进入云原生、分布式的时代,什么才是数据库的正确打开方式
- Springboot+Mysql企业员工绩效工资管理系统
- python基础(八):进制转换及python中的进制转换方法
- 卫星电视的双本振,单本振及高频头相关知识普及
- 推箱子简易java代码_Java实现简单推箱子游戏
- app store无法下载、安装软件,一直在转圈的一个解决方法
- 模拟退火算法+大规模邻域算法求解大规模固定节点的路径规划问题matlab代码
- Error syncing pod, skipping: failed to “StartContainer“ for “POD“ with ErrImagePull: “image pull fai
- 安卓手机屏幕分辨率如何修改
- UVC 1.0 和 UVC 1.1的差别
- IDEA添加快捷注释功能