python-igraph基本用法(一)

来源:互联网 发布:淘宝推广平台哪个好 编辑:程序博客网 时间:2024/06/08 15:51

从边列表文件生成网络

  按照边列表的形式读入文件,生成无向图。

# -*- coding: utf-8 -*- #设置中文注释import igraph as ig#按照边列表的形式读入文件,生成无向图g = ig.Graph.Read_Edgelist("com-youtube.ungraph.txt", directed=False)

基本信息

 ecount = g.ecount()#统计边的数目 vcount = g.vcount()#统计节点数目 maxdegree = g.maxdegree()#最大度值

计算度序列

  degree()函数生成度序列

import igraph as ig#按照边列表的形式读入文件,生成无向图g = ig.Graph.Read_Edgelist("com-youtube.ungraph.txt", directed=False)degrees = g.degree()#列表#序列化度序列# f = open("youtube_degree.txt", 'w+')# for d in degrees:#     print >> f,"%d" % d

类似效果:

29256122753192

生成边列表文件

  get_edgelist()函数生成边列表文件,该函数可以将内存中的网络整理成边列表形式

#序列化边信息edgelist = g.get_edgelist()f = open("youtube_edgelist.txt", 'w+')for edge in edgelist:    print >> f,"%d\t%d" % edge

类似效果:

1   21   31   41   51   61   71   8

邻居节点信息

给定节点

  给定节点编号,求得其所有的邻居节点

neighbors = g.neighbors(vertex=1)f = open("youtube_data.txt", 'w+')try:    for neighbor in neighbors:        print >> f,"%d" % neighborfinally:    f.close()

类似结果:

[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 376, 1219, 268635, 317880, 665255, 665256, 665257, 665258]

所有节点

  按照节点编号顺序依次列出所有的邻居节点,其中这列节点的标号顺序可以看做网络中边的编号。

import igraph as igg = ig.Graph.Read_Edgelist("com-youtube.ungraph.txt", directed=False)# ig.Graph.neighborhood()neighbors = g.neighborhood()# print type(neighbors)f = open("youtube_data.txt", 'a+')try:    for list in neighbors:        for neighbor in list[1:]:#第一个元素是当前节点,其余元素是该节点的全部邻居节点            print >> f,"%d" % neighborfinally:    f.close()
原创粉丝点击