利用python构建BA无标度网络,并把构建的网络模型存储到.csv文件中

生成BA无标度网络,节点数为N=1000,初始节点数为m0=2,并存在.csv格式中:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author:Andy_Wj 
@file: BA_model.py
@time: 2018/10/23
"""
import csv
import networkx as nx   # 导入建网络模型包,命名ne
import matplotlib.pyplot as mp  # 导入科学绘图包,命名mp
# BA scale-free degree network graphy
BA = nx.barabasi_albert_graph(1000, 2)  #1000个节点,初始m0=2
ps = nx.spring_layout(BA)   # 布置框架
nx.draw(BA, ps, with_labels=False, node_size=30)
mp.show()
L = 1000
G = []
for i in range(0, L):  # 记录所有节点的邻居节点
    G.append(list(BA.neighbors(i)))
for i in range(0, L):  #将各个节点的额lable(ID)插入到表格的第一列
    G[i].insert(0, i)

with open('BA_model.csv', 'w', newline='') as f:
    writer = csv.writer(f)  #生成BA_model.csv文件
    for i in G:
        writer.writerow(i)
    # 还可以写入多行
    # writer.writerows(data)
# print(G)

该程序适用于复杂网络的网络模型构建。

你可能感兴趣的:(python,grammar,图论,复杂网络,BA模型)