distribution

Functions for manipulating probability distributions.

pyphi.distribution.normalize(a)

Normalize a distribution.

Parameters

a (np.ndarray) – The array to normalize.

Returns

a normalized so that the sum of its entries is 1.

Return type

np.ndarray

pyphi.distribution.uniform_distribution(number_of_nodes)

Return the uniform distribution for a set of binary nodes, indexed by state (so there is one dimension per node, the size of which is the number of possible states for that node).

Parameters

nodes (np.ndarray) – A set of indices of binary nodes.

Returns

The uniform distribution over the set of nodes.

Return type

np.ndarray

pyphi.distribution.marginal_zero(repertoire, node_index)

Return the marginal probability that the node is OFF.

pyphi.distribution.marginal(repertoire, node_index)

Get the marginal distribution for a node.

pyphi.distribution.independent(repertoire)

Check whether the repertoire is independent.

pyphi.distribution.purview(repertoire)

The purview of the repertoire.

Parameters

repertoire (np.ndarray) – A repertoire

Returns

The purview that the repertoire was computed over.

Return type

tuple[int]

pyphi.distribution.purview_size(repertoire)

Return the size of the purview of the repertoire.

Parameters

repertoire (np.ndarray) – A repertoire

Returns

The size of purview that the repertoire was computed over.

Return type

int

pyphi.distribution.repertoire_shape(purview, N)

Return the shape a repertoire.

Parameters
  • purview (tuple[int]) – The purview over which the repertoire is computed.

  • N (int) – The number of elements in the system.

Returns

The shape of the repertoire. Purview nodes have two dimensions and non-purview nodes are collapsed to a unitary dimension.

Return type

list[int]

Example

>>> purview = (0, 2)
>>> N = 3
>>> repertoire_shape(purview, N)
[2, 1, 2]
pyphi.distribution.flatten(repertoire, big_endian=False)

Flatten a repertoire, removing empty dimensions.

By default, the flattened repertoire is returned in little-endian order.

Parameters

repertoire (np.ndarray or None) – A repertoire.

Keyword Arguments

big_endian (boolean) – If True, flatten the repertoire in big-endian order.

Returns

The flattened repertoire.

Return type

np.ndarray

pyphi.distribution.unflatten(repertoire, purview, N, big_endian=False)

Unflatten a repertoire.

By default, the input is assumed to be in little-endian order.

Parameters
  • repertoire (np.ndarray or None) – A probability distribution.

  • purview (Iterable[int]) – The indices of the nodes whose states the probability is distributed over.

  • N (int) – The size of the network.

Keyword Arguments

big_endian (boolean) – If True, assume the flat repertoire is in big-endian order.

Returns

The unflattened repertoire.

Return type

np.ndarray

pyphi.distribution.max_entropy_distribution(node_indices, number_of_nodes)

Return the maximum entropy distribution over a set of nodes.

This is different from the network’s uniform distribution because nodes outside node_indices are fixed and treated as if they have only 1 state.

Parameters
  • node_indices (tuple[int]) – The set of node indices over which to take the distribution.

  • number_of_nodes (int) – The total number of nodes in the network.

Returns

The maximum entropy distribution over the set of nodes.

Return type

np.ndarray