networkx是Python中用来计算网络结构的包。其中包含网络的数据结构,对于社交网络中的一些算法的研究,非常方便。
1. 一个demo
1.1 先建立一个网络
import networkx as nx
G = nx.random_graphs.barabasi_albert_graph(100,3) #生成一个n=1000,m=3的BA无标度网络
print G.degree(0) #返回某个节点的度
print G.degree() #返回所有节点的度
print nx.degree_histogram(G) #返回图中所有节点的度分布序列(从1至最大度的出现频次)
1.2. 用matplotlib将网络画出来
将上面的网络图用matplotlib画出来
import networkx as nx
import matplotlib.pyplot as plt
pos=nx.spectral_layout(G)
clusterResult=[ 1 for i in range(0,100)]#这是节点的社区划分结果
nx.draw(G,with_labels=True,node_color=clusterResult,node_size=100)
plt.show()
2 network的一些常用方法
2.1 网络结构的创建
创建网络结构
G = nx.Graph() #建立一个空的无向图G
2.2 网络结构的属性
获取节点的邻居、度
G.neighbors(i) #节点i的所有邻居
G.degree(i) #节点i的度
2.3 读写gml文件
网络结构的数据集存储在*.gml文件中,可以使用networkx读取、写入gml文件。
import networkx as nx #导入networkx包
G=nx.read_gml("dolphins.gml") #从文件中读入网络