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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 714ee713b605d6d9cb2a26a9a842c5d4c0a8a8f79e8f0f9357dab179ad4ee55b |
|
MD5 | e77222575fd54375e02eee4908e5a0b8 |
|
BLAKE2b-256 | c00d158b6fa9eb6697c79b400530fc832dd5a3dc0a3205e051c24c950a90787f |