Skip to main content

Cython implementation of the classic Louvain algorithm for community detection in graphs

Project description

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>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cylouvain-0.2.2.tar.gz (131.9 kB view details)

Uploaded Source

File details

Details for the file cylouvain-0.2.2.tar.gz.

File metadata

  • Download URL: cylouvain-0.2.2.tar.gz
  • Upload date:
  • Size: 131.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cylouvain-0.2.2.tar.gz
Algorithm Hash digest
SHA256 714ee713b605d6d9cb2a26a9a842c5d4c0a8a8f79e8f0f9357dab179ad4ee55b
MD5 e77222575fd54375e02eee4908e5a0b8
BLAKE2b-256 c00d158b6fa9eb6697c79b400530fc832dd5a3dc0a3205e051c24c950a90787f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page