network¶
Represents the network of interest. This is the primary object of PyPhi and the context of all \(\varphi\) and \(\Phi\) computation.
-
class
pyphi.network.Network(tpm, connectivity_matrix=None, node_labels=None, perturb_vector=None, purview_cache=None)¶ A network of nodes.
Represents the network we’re analyzing and holds auxilary data about it.
Example
In a 3-node network,
a_network.tpm[(0, 0, 1)]gives the transition probabilities for each node at \(t_0\) given that state at \(t_{-1}\) was \(\{N_0 = 0, N_1 = 0, N_2 = 1\}\).Parameters: tpm (np.ndarray) – See the corresponding attribute.
Keyword Arguments: - connectivity_matrix (array or sequence) – A square binary adjacency
matrix indicating the connections between nodes in the network.
connectivity_matrix[i][j] == 1means that node \(i\) is connected to node \(j\). If no connectivity matrix is given, every node is connected to every node (including itself). - node_labels (tuple(str) – Human readable labels for each node in the network.
-
tpm¶ np.ndarray – The network’s transition probability matrix. It can be provided in either state-by-node (either 2-D or N-D) or state-by-state form. In either form, row indices must follow the LOLI convention (see discussion in the
examplesmodule), and in state-by-state form, so must column indices. If given in state-by-node form, it can be either 2-dimensional, so thattpm[i]gives the probabilities of each node being on if the past state is encoded by \(i\) according to LOLI, or in N-D form, so thattpm[(0, 0, 1)]gives the probabilities of each node being on if the past state is \(\{N_0 = 0, N_1 = 0, N_2 = 1\}\). The shape of the 2-dimensional form of a state-by-node TPM must be(S, N), and the shape of the N-D form of the TPM must be[2] * N + [N], whereSis the number of states andNis the number of nodes in the network.
-
connectivity_matrix¶ np.ndarray – A square binary adjacency matrix indicating the connections between nodes in the network.
-
size¶ int – The number of nodes in the network.
-
num_states¶ int – The number of possible states of the network.
-
size
-
num_states
-
node_indices¶
-
node_labels¶
-
tpm
-
connectivity_matrix
-
perturb_vector¶
-
labels2indices(labels)¶ Convert a tuple of node labels to node indices.
-
indices2labels(indices)¶ Convert a tuple of node indices to node labels.
-
parse_node_indices(nodes)¶ Returns the nodes indices for nodes, where
nodesis either already integer indices or node labels.
-
__eq__(other)¶ Return whether this network equals the other object.
Two networks are equal if they have the same TPM, connectivity matrix, and perturbation vector.
-
to_json()¶
- connectivity_matrix (array or sequence) – A square binary adjacency
matrix indicating the connections between nodes in the network.
-
pyphi.network.irreducible_purviews(cm, direction, mechanism, purviews)¶ Returns all purview which are irreducible for the mechanism.
Parameters: - cm (np.ndarray) – A \(N \times N\) connectivity matrix.
- direction (str) –
DIRECTIONS[PAST]orDIRECTIONS[FUTURE]. - purviews (list(tuple(int) – The purviews to check.
- mechanism (tuple(int) – The mechanism in question.
Returns: list –
- All purviews in
purviewswhich are not reducible over
mechanism.
Return type: tuple(int
-
pyphi.network.from_json(filename)¶ Convert a JSON representation of a network to a PyPhi network.
Parameters: filename (str) – A path to a JSON file representing a network. Returns: network – The corresponding PyPhi network object. Return type: Network