# 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  * 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

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

property cm

np.ndarray: The network’s connectivity matrix.

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

property connectivity_matrix

np.ndarray: Alias for cm.

property causally_significant_nodes
property size

int: The number of nodes in the network.

property num_states

int: The number of possible states of the network.

property node_indices

tuple[int]: The indices of nodes in the network.

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

property node_labels

tuple[str]: The labels of nodes in the network.

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

__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