Functions for manipulating transition probability matrices.


Indices of nodes in the TPM.


Return True if tpm is in state-by-state form, otherwise False.

pyphi.tpm.condition_tpm(tpm, fixed_nodes, state)

Return a TPM conditioned on the given fixed node indices, whose states are fixed according to the given state-tuple.

The dimensions of the new TPM that correspond to the fixed nodes are collapsed onto their state, making those dimensions singletons suitable for broadcasting. The number of dimensions of the conditioned TPM will be the same as the unconditioned TPM.


Broadcast a state-by-node TPM so that singleton dimensions are expanded over the full network.

pyphi.tpm.marginalize_out(indices, tpm)

Marginalize out a node from a TPM.

  • indices (list[int]) – The indices of nodes to be marginalized out.
  • tpm (np.ndarray) – The TPM to marginalize the node out of.

A TPM with the same number of dimensions, with the nodes marginalized out.

Return type: