def get_Temporal_Network(edges,firstday,lastday,directed,number_of_nodes,normalized):
# Dictionary indexed by times from 0 to firstday-lastday: time: edge_list
time_to_edges = {t: set() for t in xrange(0, lastday-firstday+1)}
for u,v,t in edges:
if u != v: # ignore self loops
time_to_edges[t - firstday].add((u,v))
if not directed:
time_to_edges[t - firstday].add((v,u))
# Initialize the temporal network
Temporal_Network = {}
for time, edges in time_to_edges.items():
col = [u for u,v in edges]
row = [v for u,v in edges]
dat = [True for i in range(len(edges))]
Adj_Matrix = sp.csr_matrix((dat,(row,col)),
shape=(number_of_nodes, number_of_nodes), dtype=bool)
# !!!!!!!!! Annahme, dass Kante: u -> v und p(t+1) = Ap(t) bzw. A[v,u] = 1 !!!!!!!!
if normalized:
Adj_Matrix = normalize(Adj_Matrix.transpose(), norm='l1', axis=1, copy=False).transpose()
Temporal_Network[time] = Adj_Matrix
else:
Temporal_Network[time] = Adj_Matrix
return Temporal_Network
评论列表
文章目录