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
Built Distributions
Hashes for cylouvain-0.2.1-cp36-cp36m-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ced572855f3e849e4acde3a7f113b8cf5a4471d02ca7f51e67e1908bec616a2 |
|
MD5 | 944c8397fe46fdfa85e9b1bbf4ac58e5 |
|
BLAKE2b-256 | 0974da2e0839fa2876b70465efe39a21661d1804cb623514d9800aa05c6c1345 |
Hashes for cylouvain-0.2.1-cp27-cp27m-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef74101580404d4185486d86e005b61f5cc7c7d55c3499a66768a062b1275988 |
|
MD5 | 1c371f4aa4f5b614fc4af0ffa663c358 |
|
BLAKE2b-256 | 8de6845655726590f409cb264e8578e2bea4afffc3d6aed5dc4839954cd789f0 |