存储networkx生成的图的方法参考networkx手册:
https://networkx.github.io/documentation/stable/reference/readwrite/index.html
Adjacency List经过适当处理可以转换成metis可识别的格式。

先看graph的Adjacency List

import networkx as nx
import metis
import numpy as np
import matplotlib.pyplot as plt#用random_graphs.barabasi_albert_graph(n, m)方法生成一个含有n个节点、每次加入m条边的BA无标度网络
BA = nx.random_graphs.barabasi_albert_graph(20, 1)
pos = nx.spring_layout(BA)  # 图形的布局样式,这里是中心放射状
nx.draw(BA, pos, with_labels=True, node_size=30, node_color='red')
plt.show()

for line in nx.generate_adjlist(BA):print(line)

0 1 2 4 18
1 3 5
2
3
4
5 6 7 8 9 10 13 14 15 17
6
7 11 12 19
8
9
10
11
12 16
13
14
15
16
17
18
19

#BA.nodes
#BA.edges
#nx.number_of_nodes(BA) #20
#nx.number_of_edges(BA) #19
nx.write_adjlist(BA,"BA.adjlist")

Adjacency List将每条边只记一次,而metis的输入格式要求将每条边记录两次;Adjacency List的每一行第一个数表示该顶点,而metis默认行数为顶点;Adjacency List的顶点编号从0开始,metis的顶点编号从1开始。

node_num = nx.number_of_nodes(BA)
f=open('file','w')
for i in range(node_num):it = nx.neighbors(BA, i)li = list()while 1:try:li.append(next(it)+1)
#         print(li)except StopIteration:breakf.write(str(li)+'\n\r') #换行windows \r\n linux \n mac \rprint(li)

[2, 3, 5, 19]
[1, 4, 6]
[1]
[2]
[1]
[2, 7, 8, 9, 10, 11, 14, 15, 16, 18]
[6]
[6, 12, 13, 20]
[6]
[6]
[6]
[8]
[8, 17]
[6]
[6]
[6]
[13]
[6]
[1]
[8]

在生成的file文件中将中括号和逗号去掉,然后在第一行添加节点数和边数,保存即可。

最后metis可用的格式长这样:

方法比较笨,欢迎补充~

networkx_to_metis相关推荐

最新文章

  1. C++派生类与基类构造函数调用次序
  2. Datahwhale第三期集训团队成员
  3. 每日一问一周汇总:第1期
  4. Python pickle模块和joblib模块浅析
  5. JSTL 与 JSP 代码段 相互调用变量
  6. jquery 初步学习
  7. 通过SAP customizing修改显示message 的type
  8. XGBoost对比RandomForest、GBDT、决策树、SVM,XGB+LR精度还能提升
  9. 怎么评价两组数据是否接近_接近组数据(组间)
  10. 计算机课的情感目标是什么意思,教案中情感目标是什么.doc
  11. 6 python高级数据处理和可视化
  12. cartographer探秘第四章之代码解析(二) --- 传感器数据处理过程
  13. java list 包含字符串_Java8实战:查找列表中包含的字符串
  14. Linux下socket编程的简单实例
  15. WIN7英文语言包下载,安装,使用
  16. mysql start until_mysql 利用新建从库 使用 start slave until 恢复方法
  17. mysqldump关于--set-gtid-purged=OFF的使用(好文章!!)
  18. Android 国内集成使用谷歌地图
  19. 离散数学12_第5章 关系与函数之等价关系与序关系、哈斯图
  20. 幻14 连不上无线网 网卡掉驱动

热门文章

  1. History(查看历史命令)的用法
  2. 北京大学计算机学院复试名单2021,北京大学研究生招生简章2021(北京大学研究生复试名单)...
  3. 分治法实现寻找数组最大最小值
  4. 左右两侧浮动广告代码
  5. Minio分布式集群部署(Swarm)
  6. string拼接时去掉最后一个逗号
  7. HHT和FFT的对比
  8. Java:5大最佳Java库
  9. python怎么新建工程_Python vue坏境搭建及项目创建
  10. form表单提交三种方式,demo实例详解