# partition¶

Functions for generating partitions.

pyphi.partition.partitions(collection)

Generate all set partitions of a collection.

Example

>>> list(partitions(range(3)))
[[[0, 1, 2]],
[[0], [1, 2]],
[[0, 1], [2]],
[[1], [0, 2]],
[[0], [1], [2]]]

pyphi.partition.bipartition_indices(N)

Return indices for undirected bipartitions of a sequence.

Parameters: N (int) – The length of the sequence. A list of tuples containing the indices for each of the two parts. list

Example

>>> N = 3
>>> bipartition_indices(N)
[((), (0, 1, 2)), ((0,), (1, 2)), ((1,), (0, 2)), ((0, 1), (2,))]

pyphi.partition.bipartition(seq)

Return a list of bipartitions for a sequence.

Parameters: a (Iterable) – The sequence to partition. A list of tuples containing each of the two partitions. list[tuple[tuple]]

Example

>>> bipartition((1,2,3))
[((), (1, 2, 3)), ((1,), (2, 3)), ((2,), (1, 3)), ((1, 2), (3,))]

pyphi.partition.directed_bipartition_indices(N)

Return indices for directed bipartitions of a sequence.

Parameters: N (int) – The length of the sequence. A list of tuples containing the indices for each of the two parts. list

Example

>>> N = 3
>>> directed_bipartition_indices(N)
[((), (0, 1, 2)),
((0,), (1, 2)),
((1,), (0, 2)),
((0, 1), (2,)),
((2,), (0, 1)),
((0, 2), (1,)),
((1, 2), (0,)),
((0, 1, 2), ())]

pyphi.partition.directed_bipartition(seq, nontrivial=False)

Return a list of directed bipartitions for a sequence.

Parameters: seq (Iterable) – The sequence to partition. A list of tuples containing each of the two parts. list[tuple[tuple]]

Example

>>> directed_bipartition((1, 2, 3))
[((), (1, 2, 3)),
((1,), (2, 3)),
((2,), (1, 3)),
((1, 2), (3,)),
((3,), (1, 2)),
((1, 3), (2,)),
((2, 3), (1,)),
((1, 2, 3), ())]

pyphi.partition.bipartition_of_one(seq)

Generate bipartitions where one part is of length 1.

pyphi.partition.reverse_elements(seq)

Reverse the elements of a sequence.

pyphi.partition.directed_bipartition_of_one(seq)

Generate directed bipartitions where one part is of length 1.

Parameters: seq (Iterable) – The sequence to partition. A list of tuples containing each of the two partitions. list[tuple[tuple]]

Example

>>> partitions = directed_bipartition_of_one((1, 2, 3))
>>> list(partitions)
[((1,), (2, 3)),
((2,), (1, 3)),
((3,), (1, 2)),
((2, 3), (1,)),
((1, 3), (2,)),
((1, 2), (3,))]

pyphi.partition.directed_tripartition_indices(N)

Return indices for directed tripartitions of a sequence.

Parameters: N (int) – The length of the sequence. A list of tuples containing the indices for each partition. list[tuple]

Example

>>> N = 1
>>> directed_tripartition_indices(N)
[((0,), (), ()), ((), (0,), ()), ((), (), (0,))]

pyphi.partition.directed_tripartition(seq)

Generator over all directed tripartitions of a sequence.

Parameters: seq (Iterable) – a sequence. tuple[tuple] – A tripartition of seq.

Example

>>> seq = (2, 5)
>>> list(directed_tripartition(seq))
[((2, 5), (), ()),
((2,), (5,), ()),
((2,), (), (5,)),
((5,), (2,), ()),
((), (2, 5), ()),
((), (2,), (5,)),
((5,), (), (2,)),
((), (5,), (2,)),
((), (), (2, 5))]

pyphi.partition.k_partitions(collection, k)

Generate all k-partitions of a collection.

Example

>>> list(k_partitions(range(3), 2))
[[[0, 1], [2]], [[0], [1, 2]], [[0, 2], [1]]]