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, purview_cache=None)¶ A network of nodes.
Represents the network we’re analyzing and holds auxilary data about it.
Parameters: tpm (np.ndarray) –
The transition probability matrix of the network.
The TPM can be provided in either state-by-node (either 2-dimensional or n-dimensional) or state-by-state form. In either form, row indices must follow the LOLI convention (see Transition probability matrix conventions). In state-by-state form column indices must also follow the LOLI convention.
If given in state-by-node form, the TPM can be either 2-dimensional, so that
tpm[i]
gives the probabilities of each node being on if the past state is encoded by \(i\) according to LOLI, or in n-dimensional 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-dimensional form of the TPM must be[2] * N + [N]
, whereS
is the number of states andN
is the number of nodes in the network.Keyword Arguments: - connectivity_matrix (np.ndarray) – A square binary adjacency matrix
indicating the connections between nodes in the network.
connectivity_matrix[i][j] == 1
means 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.
Example
In a 3-node network,
a_network.tpm[(0, 0, 1)]
gives the transition probabilities for each node at \(t\) given that state at \(t-1\) was \((n_0 = 0, n_1 = 0, n_2 = 1)\).-
tpm
¶ np.ndarray – The network’s transition probability matrix, in n-dimensional form.
-
cm
¶ np.ndarray – The network’s connectivity matrix.
A square binary adjacency matrix indicating the connections between nodes in the network.
-
connectivity_matrix
¶ np.ndarray – Alias for
cm
.
-
causally_significant_nodes
¶
-
size
¶ int – The number of nodes in the network.
-
num_states
¶ int – The number of possible states of the network.
-
node_indices
¶ tuple[int] – The indices of nodes in the network.
This is equivalent to
tuple(range(network.size))
.
-
node_labels
¶ tuple[str] – The labels of nodes in the network.
-
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
nodes
is either already integer indices or node labels.
-
potential_purviews
(direction, mechanism)¶ All purviews which are not clearly reducible for mechanism.
Parameters: Returns: All purviews which are irreducible over
mechanism
.Return type: list[tuple[int]]
-
__eq__
(other)¶ Return whether this network equals the other object.
Networks are equal if they have the same TPM and CM.
-
to_json
()¶ Return a JSON-serializable representation.
- connectivity_matrix (np.ndarray) – 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: Returns: All purviews in
purviews
which are not reducible overmechanism
.Return type: list[tuple[int]]
Raises: ValueError
– Ifdirection
is invalid.