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.
- Returns
A list of tuples containing the indices for each of the two parts.
- Return type
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.
- Returns
A list of tuples containing each of the two partitions.
- Return type
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.
- Returns
A list of tuples containing the indices for each of the two parts.
- Return type
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.
- Returns
A list of tuples containing each of the two parts.
- Return type
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.
- Returns
A list of tuples containing each of the two partitions.
- Return type
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.
- Returns
A list of tuples containing the indices for each partition.
- Return type
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.
- Yields
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]]]
-
class
pyphi.partition.
PartitionRegistry
¶ Storage for partition schemes registered with PyPhi.
Users can define custom partitions:
Examples
>>> @partition_types.register('NONE') ... def no_partitions(mechanism, purview): ... return []
And use them by setting
config.PARTITION_TYPE = 'NONE'
-
desc
= 'partitions'¶
-
-
pyphi.partition.
mip_partitions
(mechanism, purview, node_labels=None)¶ Return a generator over all mechanism-purview partitions, based on the current configuration.
-
pyphi.partition.
mip_bipartitions
(mechanism, purview, node_labels=None)¶ Return an generator of all \(\varphi\) bipartitions of a mechanism over a purview.
Excludes all bipartitions where one half is entirely empty, e.g:
A ∅ ─── ✕ ─── B ∅
is not valid, but
A ∅ ─── ✕ ─── ∅ B
is.
- Parameters
mechanism (tuple[int]) – The mechanism to partition
purview (tuple[int]) – The purview to partition
- Yields
Bipartition –
Where each bipartition is:
bipart[0].mechanism bipart[1].mechanism ─────────────────── ✕ ─────────────────── bipart[0].purview bipart[1].purview
Example
>>> mechanism = (0,) >>> purview = (2, 3) >>> for partition in mip_bipartitions(mechanism, purview): ... print(partition, '\n') ∅ 0 ─── ✕ ─── 2 3 ∅ 0 ─── ✕ ─── 3 2 ∅ 0 ─── ✕ ─── 2,3 ∅
-
pyphi.partition.
wedge_partitions
(mechanism, purview, node_labels=None)¶ Return an iterator over all wedge partitions.
These are partitions which strictly split the mechanism and allow a subset of the purview to be split into a third partition, e.g.:
A B ∅ ─── ✕ ─── ✕ ─── B C D
See
PARTITION_TYPE
inconfig
for more information.- Parameters
mechanism (tuple[int]) – A mechanism.
purview (tuple[int]) – A purview.
- Yields
Tripartition – all unique tripartitions of this mechanism and purview.
-
pyphi.partition.
all_partitions
(mechanism, purview, node_labels=None)¶ Return all possible partitions of a mechanism and purview.
Partitions can consist of any number of parts.
- Parameters
mechanism (tuple[int]) – A mechanism.
purview (tuple[int]) – A purview.
- Yields
KPartition – A partition of this mechanism and purview into
k
parts.