Supra adjacency matrices¶
Multiplex (layer) networks can also be represented as supra-adjacency matrices as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ### simple supra adjacency matrix manipulation ## tensor-based operations examples from py3plex.core import multinet from py3plex.core import random_generators ## initiate an instance of a random graph ER_multilayer = random_generators.random_multilayer_ER(500,8,0.05,directed=False) mtx = ER_multilayer.get_supra_adjacency_matrix() comNet = multinet.multi_layer_network(network_type="multiplex",coupling_weight=1).load_network('../datasets/simple_multiplex.edgelist',directed=False,input_type='multiplex_edges') comNet.basic_stats() comNet.load_layer_name_mapping('../datasets/simple_multiplex.txt') mat = comNet.get_supra_adjacency_matrix() print(mat.shape) kwargs = {"display":True} comNet.visualize_matrix(kwargs) ## how are nodes ordered? for edge in comNet.get_edges(data=True): print(edge) print (comNet.node_order_in_matrix) |
Some additional tensor-like indexing:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ## tensor-based operations examples from py3plex.core import multinet from py3plex.core import random_generators ## initiate an instance of a random graph ER_multilayer = random_generators.random_multilayer_ER(500,8,0.05,directed=False) ## some simple visualization visualization_params = {"display":True} ER_multilayer.visualize_matrix(visualization_params) some_nodes = [node for node in ER_multilayer.get_nodes()][0:5] some_edges = [node for node in ER_multilayer.get_edges()][0:5] ## random node is accessed as follows print(ER_multilayer[some_nodes[0]]) ## and random edge as print(ER_multilayer[some_edges[0][0]][some_edges[0][1]]) |