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 LOLI: Low-Order bits correspond to Low-Index nodes). 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 that tpm[(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], where S is the number of states and N 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

See pyphi.connectivity.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:
  • direction (Direction) – PAST or FUTURE.
  • mechanism (tuple[int]) – The mechanism which all purviews are checked for reducibility over.
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.

classmethod from_json(json_dict)

Return a Network object from a JSON dictionary representation.

pyphi.network.irreducible_purviews(cm, direction, mechanism, purviews)

Returns all purview which are irreducible for the mechanism.

Parameters:
  • cm (np.ndarray) – An \(N \times N\) connectivity matrix.
  • direction (Direction) – PAST or FUTURE.
  • purviews (list[tuple[int]]) – The purviews to check.
  • mechanism (tuple[int]) – The mechanism in question.
Returns:

All purviews in purviews which are not reducible over mechanism.

Return type:

list[tuple[int]]

Raises:

ValueError – If direction is invalid.

pyphi.network.from_json(filename)

Convert a JSON network to a PyPhi network.

Parameters:filename (str) – A path to a JSON file representing a network.
Returns:The corresponding PyPhi network object.
Return type:Network