Skip to main content

cylouvain: Cython Louvain

cylouvain is a Python module that provides a fast implementation of the classic Louvain algorithm for node clustering in graph.

This module uses Cython in order to obtain C-like performance with code mostly writen in Python.

Installation

Install the latest version of cylouvain using pip

$ pip install cylouvain

Dependencies

cylouvain requires:

  • Python (>= 2.7 or >= 3.4)

  • NumPy

  • SciPy

  • NetworkX

Simple example

Build a simple graph with NetworkX:

>>> import networkx as nx
>>> graph = nx.Graph()
>>> graph.add_nodes_from(['a', 'b', 'c', 'd', 'e'])
>>> graph.add_edges_from([('a', 'b'), ('a', 'c'), ('b', 'c'),
                          ('c', 'd'), ('c', 'e'), ('d', 'e')])

Compute a partition of the nodes using cylouvain:

>>> import cylouvain
>>> partition = cylouvain.best_partition(graph)
>>> print(partition)
{'a': 0, 'b': 0, 'c': 0, 'd': 1, 'e': 1}

Compute the corresponding modularity:

>>> modularity = cylouvain.modularity(partition, graph)
>>> print("Modularity: %0.3f\n" % modularity)
Modularity: 0.111

References

The Louvain algorithm is an heuristic to find a node partition that maximizes the modularity function. It is described in:

Fast unfolding of communities in large networks
Vincent D Blondel, Jean-Loup Guillaume, Renaud Lambiotte, Etienne Lefebvre
Journal of Statistical Mechanics: Theory and Experiment 2008 (10), P10008 (12pp)

The modularity function was first introduced in:

Finding and evaluating community structure in networks
Newman, Mark EJ and Girvan, Michelle
Physical review E, 2004, vol. 69, no 2, p. 026113.

License

Released under the 3-Clause BSD license (see COPYING):

Copyright (C) 2018 Alexandre Hollocou <alexandre@hollocou.fr>

Metadata

Release files for cylouvain 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cylouvain 0.2.2
File Size Uploaded
cylouvain-0.2.2.tar.gz 131.9 kB Details

Release files / cylouvain-0.2.2.tar.gz

Download URL cylouvain-0.2.2.tar.gz
Size 131.9 kB
Tags Source
SHA-256 checksum
How to use checksums
714ee713b605d6d9cb2a26a9a842c5d4c0a8a8f79e8f0f9357dab179ad4ee55b
BLAKE2b-256 checksum
How to use checksums
c00d158b6fa9eb6697c79b400530fc832dd5a3dc0a3205e051c24c950a90787f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.2 This release

1 release file

0.2.1

3 release files

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page