networkx社交网络包

2017/04/02 python

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")  #从文件中读入网络

Search

    Post Directory