加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

【Python】学习Python-igraph

发布时间:2020-12-17 01:22:51 所属栏目:Python 来源:网络整理
导读:span style="color:rgb(69,69,69);background-color:rgb(255,255,255);"总结:学习一种全新的语言看官方的文档是真的很有帮助,这次我的大部分python代码的完成都是靠着igraph官方的API文档。 span style="color:rgb(69,255);"官方API:http://pythonhosted.

<span style="color:rgb(69,69,69);background-color:rgb(255,255,255);">总结:学习一种全新的语言看官方的文档是真的很有帮助,这次我的大部分python代码的完成都是靠着igraph官方的API文档。

<span style="color:rgb(69,255);">官方API:http://pythonhosted.org/python-igraph/igraph.Graph-class.html

<span style="color:rgb(69,255);">首先导入igraph工具包 from igraph import *(python语法)

<span style="background-color:rgb(255,255);"><span style="color:#cc0000;">报错:No module named 'igraph._igraph',原因是你在你安装源码的文件夹下import,这时import的不是你刚才安装的模块,而是自带的包。切换路径即可。

<span style="color:#cc0000;"><span style="background-color:rgb(255,255);">报错:DeprecationWarning: To avoid name collision with the igraph project,this visualization library has been renamed to 'jgraph'. Please upgrade when convenient. 原因是igraph强迫你更新,打开提示的init.py文件,把报错语句删除即可。(先别急着删除,往下看)

<span style="color:rgb(69,255);">创建图 g = Graph.Tree(127,2)

<span style="color:#cc0000;"><span style="background-color:rgb(255,255);">报错:AttributeError: module 'igraph' has no attribute 'Graph'。<span style="background-color:rgb(255,255);">原因是,官方有两个igraph库,一个是igraph,一个是python-igraph,安装错了,卸载pip uninstall igraph,重装?<span style="background-color:rgb(255,255);">pip install python_igraph-0.7.1.post4-cp27-none-win32.whl

<span style="color:#cc0000;"><span style="background-color:rgb(255,255);">这里提示一下,楼主最后放弃安装,因为只有32位版本,不适合64位机器。而这个<a href="http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-igraph" rel="nofollow">网址中的64版本全部不能下载了,所以最后放弃了。

<span style="color:rgb(69,255);">运行fastunfloding算法 g.community_multilevel("weight",True)<br style="color:rgb(69,255);">绘制graph plot(g)<br style="color:rgb(69,255);">代码参考 fastunfloding.txt<br style="color:rgb(69,255);">给图添加边并且添加权值:g.add_edges([(0,1)])<br style="color:rgb(69,255);"><span style="color:rgb(69,255);">g.es[1]["weight"]=2<br style="color:rgb(69,255);">其中g.es[1]代表的是第一条边<br style="color:rgb(69,255);">最开始我的图是从数据库导出,即(点,点,权)这种模式所以就需要从txt文档中读边并且建立图<br style="color:rgb(69,255);">打开文件:f = open('D:test1test.txt','r')<br style="color:rgb(69,255);">读文件中一行:line = ?f.readline() 注:line是字符串的形式<br style="color:rgb(69,255);">取出文件一行的整数并且加入到数组尾部 result.append(map(int,line.split(',')))<br style="color:rgb(69,255);">读图完毕后就需要将图放到fastunfolding算法中去了<br style="color:rgb(69,255);">a = g.community_multilevel("weight",255);">官方API上说 当g.community_multilevel最后一个参数为True的时候<br style="color:rgb(69,255);">a返回的是一组list,list的存放位置在(a[0])处,a[0][s]代表着<br style="color:rgb(69,255);">community为s的所有顶点<br style="color:rgb(69,255);">注:a list of VertexClustering objects,one corresponding to each level (if return_levels is True)<br style="color:rgb(69,255);">取list长度:len(a[0])<br style="color:rgb(69,255);">将输入的图存成gml格式:g.write_graphmlz(self,f,compresslevel=9)<br style="color:rgb(69,255);">读gml格式的图:g = Graph.Read_GraphMLz("D:test1final_graph.gml")

<span style="color:rgb(69,255);">转载自:http://blog.csdn.net/crazyacm/article/details/46444579

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读