2016-06-25 69 views
2

我在Python中的鄰接矩陣中表示網站用戶行爲時遇到問題。我想分析43個不同網站之間的用戶交互,以查看哪些網站一起使用。在Python中爲大數據集創建鄰接矩陣

給定數據集有大約13.000.000線具有以下結構:

user website 
id1 web1 
id1 web2 
id1 web2 
id2 web1 
id2 web2 
id3 web3 
id3 web2 

我想以可視化的網站之間的相互作用的鄰接矩陣是這樣的:

 web1 web2 web3 
web1 2 2 0 
web2 2 4 1 
web3 0 1 1 

我對任何建議感到高興

回答

5
import scipy.sparse 

data = """ 
id1 web1 
id1 web2 
id1 web2 
id2 web1 
id2 web2 
id3 web3 
id3 web2 
""" 

data = np.array(data.split()).reshape(-1, 2) 
_, i = np.unique(data[:, 0], return_inverse=True) 
_, j = np.unique(data[:, 1], return_inverse=True) 

incidence = scipy.sparse.coo_matrix((np.ones_like(i), (i,j))) 
adjecency = incidence.T * incidence 

print(adjecency.todense())