Supra-Adjacency Matrices

Multiplex networks can be represented as supra-adjacency matrices for tensor-based operations.

from py3plex.core import multinet, random_generators

# Generate network
network = random_generators.random_multilayer_ER(
    num_nodes=500, num_layers=8, probability=0.05, directed=False)

# Get supra-adjacency matrix
supra_matrix = network.get_supra_adjacency_matrix()

# Visualize matrix
network.visualize_matrix({"display": True})

Examples

See:

  • example_supra_adjacency.py - Supra-adjacency operations

  • example_tensorial_manipulation.py - Tensor operations

Repository: https://github.com/SkBlaz/Py3Plex/tree/master/examples

_images/supra.png

Some additional tensor-like indexing:

 1     ## tensor-based operations examples
 2
 3     from py3plex.core import multinet
 4     from py3plex.core import random_generators
 5
 6     ## initiate an instance of a random graph
 7     ER_multilayer = random_generators.random_multilayer_ER(500,8,0.05,directed=False)
 8
 9     ## some simple visualization
10     visualization_params = {"display":True}
11     ER_multilayer.visualize_matrix(visualization_params)
12
13     some_nodes = [node for node in ER_multilayer.get_nodes()][0:5]
14     some_edges = [node for node in ER_multilayer.get_edges()][0:5]
15
16
17     ## random node is accessed as follows
18     print(ER_multilayer[some_nodes[0]])
19
20     ## and random edge as
21     print(ER_multilayer[some_edges[0][0]][some_edges[0][1]])