java .gml格式_NetworkX之输入文件GML「建议收藏」

java .gml格式_NetworkX之输入文件GML「建议收藏」之前看过networkx,igraph都说支持GML格式文件输入形式,直到今天想再Nepidemixload进文件进行分析,发现Nepidemix 对load输入文件要求是GML和gpickle,其余的不支持。所以查阅了下GML究竟是什么。GML(GraphModellingLanguage):Therearemanydifferentprogramsthatworkwith…

之前看过networkx,igraph都说支持GML格式文件输入形式,直到今天想再Nepidemix load进文件进行分析,发现Nepidemix 对load输入文件要求是GML和gpickle,其余的不支持。所以查阅了下GML究竟是什么。

GML(Graph Modelling Language):

There are many different programs that work with graphs but almost all of them use their own file format. As a consequence, exchanging graphs between different programs is almost impossible. Simple tasks like exchange of data, externally reproducible results or a common benchmark suite are much harder than neccessary.

Therefore, we have developed a new file format for the Graphlet system: GML. GML supports attaching arbitrary information to graphs, nodes and edges, and is therefore able to emulate almost every other format.

原文链接 可以看出GML 是网络数据的一个统一标准,相当于度量衡的作用。GML支持关于图,点,边的任意数据的附加,因此可以仿真任意格式的数据。

networkx 提供了函数 可以读GML格式的数据 或者将你load进去的普通网络转换成GML格式的文件。链接请click

read_gml(path,[,encoding, relabel]) 读GML

write_gml(G,path)写网络G进GML文件

parse_gml(lines[,relael]) 从字符串中解析GML图

generate_gml(G) Generate a single entry of the graph G in GML format

举个栗子:

我的原始数据是这样,存在一个GML.txt里

a 1

a 2

b 1

c 2

d 3

b 3

这样构成了一个二分网络,我想提取出第二列网络,即投影。然后将第二列数据的投影网络,用GML数据保0ea2d77b7003a03a4598fa069bde8c5a.png

代码:

G = nx.Graph()

f = open(‘GML.txt’)

i = 0

for line in f:

i = i+1

print i

cell = line.split()

G.add_edge(cell[0],cell[1])

f.close()

NSet = nx.bipartite.sets(G)

User = nx.project(G,NSet[1])

nx.write_gml(User,’Project_Gml’)

结果:投影的GML文件是这样:

graph [

node [

id 0

label “1”

]

node [

id 1

label “3”

]

node [

id 2

label “2”

]

edge [

source 0

target 1

]

edge [

source 0

target 2

]

]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219286.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python中变量的命名以及使用[通俗易懂]

    python中变量的命名以及使用[通俗易懂]一、变量的概念变量名只有在第一次出现的时候,才是定义变量。当再次出现时,不是定义变量,而是直接使用之前定义的变量。1.变量命名1)命名的规范性变量名可以包括字母、数字、下划线,但是数字不能做为开头。例如:name1是合法变量名,而1name就不可以。 系统关键字不能做变量名使用 除了下划线之个,其它符号不能做为变量名使用 Python的变量名是除分大小写的2)驼峰命名法…

    2022年6月18日
  • 4月idea激活码_通用破解码「建议收藏」

    4月idea激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • CardView_cardminder是什么软件

    CardView_cardminder是什么软件本文介绍CardView这个控件的使用,CardView继承至FrameLayout类,是support-v7包下的一个类,使用时必须引入cardview依赖包,可在下载的sdk文件夹中找到。。。使用CardView可以实现卡片式布局效果,非常好看,卡片还可以包含圆角、阴影、背景。CardView是一个ViewGroup,布局时包含其它的View从而实现优雅界面效果。首先来看看个界面效果:…

    2022年10月11日
  • c语言 goto 跳出循环,goto语句可以跳出循环.ppt

    c语言 goto 跳出循环,goto语句可以跳出循环.pptgoto语句可以跳出循环.ppt循环结构顺序、分支、循环是结构化程序设计的三种基本结构,本章主要任务是学习如何使用循环结构解决问题。主要内容for循环do循环while循环循环的中断任务1任务功能:计算1~100之间的奇数和及偶数和学习目的:利用for循环解决简单问题;程序代码privatevoidbutton1_Click(obj…

    2022年5月29日
  • 可用免费asp.net空间

    可用免费asp.net空间免费试用空间:支持到.net4.6,有sqlserver数据。1G空间,500M数据库。免费使用60天。可绑定一二级域名。到期不能再绑定已绑定过的域名。http://www.mywindows

    2022年6月30日
  • 鸡汤+实践:月薪3000到月薪30000升级之路

    鸡汤+实践:月薪3000到月薪30000升级之路最近在朋友圈疯转的一个鸡汤段子(虽然我觉得99%的可能不是屠老师说的)  屠呦呦获奖感言:不要去追一匹马,用追马的时间种草,待到春暖花开时,就会有一批骏马任你挑选;不要去刻意巴结一个人,用暂时没有朋友的时间,去提升自己的能力,待到时机成熟时,就会有一批的朋友与你行。用人情做出来的朋友只是暂时的,用人格吸引来的朋友才是长久的。所以,丰富自己比取悦他人更有力量。  其实,追马理论能在

    2022年9月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号