9
9
10
10
11
11
def transform_DiGraph_to_adj (di_graph ):
12
- n = di_graph .number_of_nodes ( )
12
+ n = len ( di_graph .nodes )
13
13
adj = np .zeros ((n , n ))
14
14
for st , ed , w in di_graph .edges (data = 'weight' , default = 1 ):
15
15
adj [st , ed ] = w
@@ -30,19 +30,19 @@ def transform_adj_to_DiGraph(adj):
30
30
31
31
def get_lcc (di_graph ):
32
32
di_graph = max (nx .weakly_connected_component_subgraphs (di_graph ), key = len )
33
- tdl_nodes = di_graph .nodes ()
33
+ tdl_nodes = list ( di_graph .nodes () )
34
34
nodeListMap = dict (zip (tdl_nodes , range (len (tdl_nodes ))))
35
35
nx .relabel_nodes (di_graph , nodeListMap , copy = False )
36
36
return di_graph , nodeListMap
37
37
38
38
39
39
def print_graph_stats (G ):
40
- print ('# of nodes: %d, # of edges: %d' % (G . number_of_nodes ( ),
41
- G . number_of_edges ( )))
40
+ print ('# of nodes: %d, # of edges: %d' % (len ( G . nodes ),
41
+ len ( G . edges )))
42
42
43
43
44
44
def sample_graph (di_graph , n_sampled_nodes = None ):
45
- node_num = di_graph .number_of_nodes ( )
45
+ node_num = len ( di_graph .nodes )
46
46
if n_sampled_nodes and node_num > n_sampled_nodes :
47
47
node_l = np .random .choice (node_num , n_sampled_nodes , replace = False )
48
48
node_l_inv = {v : k for k , v in enumerate (node_l )}
@@ -57,13 +57,13 @@ def sample_graph(di_graph, n_sampled_nodes=None):
57
57
continue
58
58
return sampled_graph , node_l
59
59
else :
60
- return di_graph , np .arange (di_graph .number_of_nodes ( ))
60
+ return di_graph , np .arange (len ( di_graph .nodes ))
61
61
62
62
63
63
def randwalk_DiGraph_to_adj (di_graph , node_frac = 0.1 ,
64
64
n_walks_per_node = 5 , len_rw = 2 ):
65
65
t0 = time .time ()
66
- n = di_graph .number_of_nodes ( )
66
+ n = len ( di_graph .nodes )
67
67
adj = np .zeros ((n , n ))
68
68
rw_node_num = int (node_frac * n )
69
69
rw_node_list = np .random .choice (n , size = [rw_node_num ],
@@ -97,8 +97,8 @@ def randwalk_DiGraph_to_adj(di_graph, node_frac=0.1,
97
97
def addChaos (di_graphs , k ):
98
98
anomaly_time_steps = sorted (random .sample (range (len (di_graphs )), k ))
99
99
for t in anomaly_time_steps :
100
- n = di_graphs [t ].number_of_nodes ( )
101
- e = di_graphs [t ].number_of_edges ( )
100
+ n = len ( di_graphs [t ].nodes )
101
+ e = len ( di_graphs [t ].edges )
102
102
di_graphs [t ] = nx .fast_gnp_random_graph (n , e / float (n * (n - 1 )),
103
103
seed = None , directed = False )
104
104
di_graphs [t ] = di_graphs [t ].to_directed ()
@@ -108,11 +108,11 @@ def addChaos(di_graphs, k):
108
108
def addNodeAnomalies (di_graphs , p , k ):
109
109
anomaly_time_steps = sorted (random .sample (range (len (di_graphs )), k ))
110
110
for t in anomaly_time_steps :
111
- n_nodes = di_graphs [t ].number_of_nodes ( )
111
+ n_nodes = len ( di_graphs [t ].nodes )
112
112
anomalous_nodes_idx = np .random .choice ([0 , 1 ],
113
113
size = (n_nodes , 1 ),
114
114
p = (1 - p , p ))
115
- node_list = np .array (di_graphs [t ].nodes ())
115
+ node_list = np .array (list ( di_graphs [t ].nodes () ))
116
116
node_list = node_list .reshape ((n_nodes , 1 ))
117
117
anomalous_nodes = np .multiply (anomalous_nodes_idx , node_list )
118
118
anomalous_nodes = anomalous_nodes [anomalous_nodes > 0 ]
@@ -123,15 +123,15 @@ def addNodeAnomalies(di_graphs, p, k):
123
123
di_graphs [t ].add_edges_from (
124
124
itertools .product (range (n_nodes ), list (anomalous_nodes ))
125
125
)
126
- print ('Nodes: %d, Edges: %d' % (di_graphs [t ].number_of_nodes ( ),
127
- di_graphs [t ].number_of_edges ( )))
126
+ print ('Nodes: %d, Edges: %d' % (len ( di_graphs [t ].nodes ),
127
+ len ( di_graphs [t ].edges )))
128
128
return anomaly_time_steps
129
129
130
130
131
131
def saveGraphToEdgeListTxt (graph , file_name ):
132
132
with open (file_name , 'w' ) as f :
133
- f .write ('%d\n ' % graph .number_of_nodes ( ))
134
- f .write ('%d\n ' % graph .number_of_edges ( ))
133
+ f .write ('%d\n ' % len ( graph .nodes ))
134
+ f .write ('%d\n ' % len ( graph .edges ))
135
135
for i , j , w in graph .edges (data = 'weight' , default = 1 ):
136
136
f .write ('%d %d %f\n ' % (i , j , w ))
137
137
0 commit comments