@@ -354,59 +354,60 @@ def dist_stats(H):
354354 dist_stats : dict
355355 Dictionary which keeps track of each of the above items (e.g., basic['nrows'] = the number of nodes in H)
356356 """
357- stats = H .state_dict .get ("dist_stats" , None )
358- if stats is not None :
359- return H .state_dict ["dist_stats" ]
360- else :
361- cstats = ["min" , "max" , "mean" , "median" , "std" ]
362- basic = dict ()
357+ if H .isstatic :
358+ stats = H .state_dict .get ("dist_stats" , None )
359+ if stats is not None :
360+ return H .state_dict ["dist_stats" ]
361+
362+ cstats = ["min" , "max" , "mean" , "median" , "std" ]
363+ basic = dict ()
364+
365+ # Number of rows (nodes), columns (edges), and aspect ratio
366+ basic ["nrows" ] = len (H .nodes )
367+ basic ["ncols" ] = len (H .edges )
368+ basic ["aspect ratio" ] = basic ["nrows" ] / basic ["ncols" ]
369+
370+ # Number of cells and density
371+ M = H .incidence_matrix (index = False )
372+ basic ["ncells" ] = M .nnz
373+ basic ["density" ] = basic ["ncells" ] / (basic ["nrows" ] * basic ["ncols" ])
374+
375+ # Node degree distribution
376+ basic ["node degree list" ] = sorted (degree_dist (H ), reverse = True )
377+ basic ["node degree centrality stats" ] = dict (
378+ zip (cstats , centrality_stats (basic ["node degree list" ]))
379+ )
380+ basic ["node degree hist" ] = Counter (basic ["node degree list" ])
381+ basic ["max node degree" ] = max (basic ["node degree list" ])
382+
383+ # Edge size distribution
384+ basic ["edge size list" ] = sorted (H .edge_size_dist (), reverse = True )
385+ basic ["edge size centrality stats" ] = dict (
386+ zip (cstats , centrality_stats (basic ["edge size list" ]))
387+ )
388+ basic ["edge size hist" ] = Counter (basic ["edge size list" ])
389+ basic ["max edge size" ] = max (basic ["edge size hist" ])
390+
391+ # Component size distribution (nodes)
392+ basic ["comp nodes list" ] = sorted (s_comp_dist (H , edges = False ), reverse = True )
393+ basic ["comp nodes hist" ] = Counter (basic ["comp nodes list" ])
394+ basic ["comp nodes centrality stats" ] = dict (
395+ zip (cstats , centrality_stats (basic ["comp nodes list" ]))
396+ )
397+
398+ # Component size distribution (edges)
399+ basic ["comp edges list" ] = sorted (s_comp_dist (H , edges = True ), reverse = True )
400+ basic ["comp edges hist" ] = Counter (basic ["comp edges list" ])
401+ basic ["comp edges centrality stats" ] = dict (
402+ zip (cstats , centrality_stats (basic ["comp edges list" ]))
403+ )
363404
364- # Number of rows (nodes), columns (edges), and aspect ratio
365- basic ["nrows" ] = len (H .nodes )
366- basic ["ncols" ] = len (H .edges )
367- basic ["aspect ratio" ] = basic ["nrows" ] / basic ["ncols" ]
405+ # Number of components
406+ basic ["num comps" ] = len (basic ["comp nodes list" ])
368407
369- # Number of cells and density
370- M = H .incidence_matrix (index = False )
371- basic ["ncells" ] = M .nnz
372- basic ["density" ] = basic ["ncells" ] / (basic ["nrows" ] * basic ["ncols" ])
373-
374- # Node degree distribution
375- basic ["node degree list" ] = sorted (degree_dist (H ), reverse = True )
376- basic ["node degree centrality stats" ] = dict (
377- zip (cstats , centrality_stats (basic ["node degree list" ]))
378- )
379- basic ["node degree hist" ] = Counter (basic ["node degree list" ])
380- basic ["max node degree" ] = max (basic ["node degree list" ])
381-
382- # Edge size distribution
383- basic ["edge size list" ] = sorted (H .edge_size_dist (), reverse = True )
384- basic ["edge size centrality stats" ] = dict (
385- zip (cstats , centrality_stats (basic ["edge size list" ]))
386- )
387- basic ["edge size hist" ] = Counter (basic ["edge size list" ])
388- basic ["max edge size" ] = max (basic ["edge size hist" ])
389-
390- # Component size distribution (nodes)
391- basic ["comp nodes list" ] = sorted (s_comp_dist (H , edges = False ), reverse = True )
392- basic ["comp nodes hist" ] = Counter (basic ["comp nodes list" ])
393- basic ["comp nodes centrality stats" ] = dict (
394- zip (cstats , centrality_stats (basic ["comp nodes list" ]))
395- )
396-
397- # Component size distribution (edges)
398- basic ["comp edges list" ] = sorted (s_comp_dist (H , edges = True ), reverse = True )
399- basic ["comp edges hist" ] = Counter (basic ["comp edges list" ])
400- basic ["comp edges centrality stats" ] = dict (
401- zip (cstats , centrality_stats (basic ["comp edges list" ]))
402- )
403-
404- # Number of components
405- basic ["num comps" ] = len (basic ["comp nodes list" ])
406-
407- # # Diameters
408- # basic['s edge diam list'] = s_edge_diameter_dist(H)
409- # basic['s node diam list'] = s_node_diameter_dist(H)
410- if H .isstatic :
411- H .set_state (dist_stats = basic )
412- return basic
408+ # # Diameters
409+ # basic['s edge diam list'] = s_edge_diameter_dist(H)
410+ # basic['s node diam list'] = s_node_diameter_dist(H)
411+ if H .isstatic :
412+ H .set_state (dist_stats = basic )
413+ return basic
0 commit comments