# ``igraph`.`Clustering``

class documentation

`class Clustering: (source)`

Known subclasses: `igraph.VertexClustering`

Constructor: `Clustering(membership, params)`

View In Hierarchy

Class representing a clustering of an arbitrary ordered set.

This is now used as a base for `VertexClustering`, but it might be useful for other purposes as well.

Members of an individual cluster can be accessed by the `[]` operator:

    >>> cl = Clustering([0,0,0,0,1,1,1,2,2,2,2])
    >>> cl[0]
    [0, 1, 2, 3]

The membership vector can be accessed by the `membership` property:

    >>> cl.membership
    [0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2]

The number of clusters can be retrieved by the `len` function:

    >>> len(cl)
    3

You can iterate over the clustering object as if it were a regular list of clusters:

    >>> for cluster in cl:
    ...     print(" ".join(str(idx) for idx in cluster))
    ...
    0 1 2 3
    4 5 6
    7 8 9 10

If you need all the clusters at once as lists, you can simply convert the clustering object to a list:

    >>> cluster_list = list(cl)
    >>> print(cluster_list)
    [[0, 1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]

Method | `__getitem__` | Returns the members of the specified cluster.
Method | `__init__` | Constructor.
Method | `__iter__` | Iterates over the clusters in this clustering.
Method | `__len__` | Returns the number of clusters.
Method | `__str__` | Undocumented
Method | `as_cover` | Returns a `Cover` that contains the same clusters as this clustering.
Method | `compare_to` | Compares this clustering to another one using some similarity or distance metric.
Method | `size` | Returns the size of a given cluster.
Method | `size_histogram` | Returns the histogram of cluster sizes.
Method | `sizes` | Returns the size of given clusters.
Method | `summary` | Returns the summary of the clustering.
Property | `membership` | Returns the membership vector.
Property | `n` | Returns the number of elements covered by this clustering.
Method | `_formatted_cluster_iterator` | Iterates over the clusters and formats them into a string to be presented in the summary.
Instance Variable | `_len` | Undocumented
Instance Variable | `_membership` | Undocumented

def __getitem__(self, idx): (source)

Returns the members of the specified cluster.

Parameters
idx | the index of the cluster

Returns
the members of the specified cluster as a list

Raises
`IndexError` | if the index is out of bounds

def __init__(self, membership, params=None): (source)
overridden in `igraph.VertexClustering`

Constructor.

Parameters
membership | the membership list -- that is, the cluster index in which each element of the set belongs to.
params | additional parameters to be stored in this object's dictionary.

def __iter__(self): (source)

Iterates over the clusters in this clustering.

This method will return a generator that generates the clusters one by one.

def __len__(self): (source)

Returns the number of clusters.

Returns
the number of clusters

def __str__(self): (source)
overridden in `igraph.Cut`

Undocumented

def as_cover(self): (source)
overridden in `igraph.VertexClustering`

Returns a `Cover` that contains the same clusters as this clustering.

def compare_to(self, other, *args, **kwds): (source)

Compares this clustering to another one using some similarity or distance metric.

This is a convenience method that simply calls `compare_communities` with the two clusterings as arguments. Any extra positional or keyword argument is also forwarded to `compare_communities`.

def size(self, idx): (source)

Returns the size of a given cluster.

Parameters
idx | the cluster in which we are interested.

def size_histogram(self, bin_width=1): (source)

Returns the histogram of cluster sizes.

Parameters
bin_width | the bin width of the histogram

Returns
a `Histogram` object

def sizes(self, *args): (source)

Returns the size of given clusters.

The indices are given as positional arguments. If there are no positional arguments, the function will return the sizes of all clusters.

def summary(self, verbosity=0, width=None): (source)

Returns the summary of the clustering.

The summary includes the number of items and clusters, and also the list of members for each of the clusters if the verbosity is nonzero.

Parameters
verbosity | determines whether the cluster members should be printed. Zero verbosity prints the number of items and clusters only.
width | Undocumented

Returns
the summary of the clustering as a string.

@property
membership = (source)

Returns the membership vector.

@property
n = (source)

Returns the number of elements covered by this clustering.

def _formatted_cluster_iterator(self): (source)
overridden in `igraph.VertexClustering`

Iterates over the clusters and formats them into a string to be presented in the summary.

_len = (source)

Undocumented

_membership = (source)

Undocumented