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, cm=None, node_labels=None, purview_cache=None)

A network of nodes.

Represents the network under analysis and holds auxilary data about it.

Parameters

tpm (np.ndarray) –

The transition probability matrix of the network.

The TPM can be provided in any of three forms: state-by-state, state-by-node, or multidimensional state-by-node form. In the state-by-node forms, row indices must follow the little-endian convention (see Little-endian convention). In state-by-state form, column indices must also follow the little-endian convention.

If the TPM is given in state-by-node form, it can be either 2-dimensional, so that tpm[i] gives the probabilities of each node being ON if the previous state is encoded by \(i\) according to the little-endian convention, or in multidimensional form, so that tpm[(0, 0, 1)] gives the probabilities of each node being ON if the previous 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 multidimensional 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
  • cm (np.ndarray) – A square binary adjacency matrix indicating the connections between nodes in the network. cm[i][j] == 1 means that node \(i\) is connected to node \(j\) (see Connectivity matrix conventions). If no connectivity matrix is given, PyPhi assumes that every node is connected to every node (including itself).

  • node_labels (tuple[str] or NodeLabels) – Human-readable labels for each node in the network.

Example

In a 3-node network, the_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\).

property tpm

The network’s transition probability matrix, in multidimensional form.

Type

np.ndarray

property cm

The network’s connectivity matrix.

A square binary adjacency matrix indicating the connections between nodes in the network.

Type

np.ndarray

property connectivity_matrix

Alias for cm.

Type

np.ndarray

property causally_significant_nodes

See pyphi.connectivity.causally_significant_nodes().

property size

The number of nodes in the network.

Type

int

property num_states

The number of possible states of the network.

Type

int

property node_indices

The indices of nodes in the network.

This is equivalent to tuple(range(network.size)).

Type

tuple[int]

property node_labels

The labels of nodes in the network.

Type

tuple[str]

potential_purviews(direction, mechanism)

All purviews which are not clearly reducible for mechanism.

Parameters
  • direction (Direction) – CAUSE or EFFECT.

  • 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]]

__len__()

int: The number of nodes in the network.

__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)

Return all purviews which are irreducible for the mechanism.

Parameters
  • cm (np.ndarray) – An \(N \times N\) connectivity matrix.

  • direction (Direction) – CAUSE or EFFECT.

  • 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