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] == 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.
-
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
examples
module), 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]
, whereS
is the number of states andN
is 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
nodes
is 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
purviews
which 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