← all repositories
annoviko/pyclustering

A clustering library that learned to let go

A once-comprehensive Python/C++ data mining toolkit abandoned in 2021, still sitting on PyPI with 1,200+ stars.

1.2k stars Python ML Frameworks
pyclustering
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

pyclustering was a dual-language data mining library offering Python and C++ implementations of clustering algorithms (K-Means, DBSCAN, OPTICS, X-Means, etc.), oscillatory neural networks, and even graph coloring. The C++ backend could be toggled with a ccore flag for performance, falling back to pure Python on unsupported platforms.

The interesting bit

The breadth is almost archaeological: 25+ clustering methods, Kuramoto-based oscillatory networks, Hodgkin-Huxley models, and LEGION networks for image segmentation. Many algorithms had both Python and C++ implementations — a genuine engineering effort, not just wrappers around existing libraries.

Key highlights

  • Dual implementations: Python and C++ for most core algorithms, switchable at runtime via ccore=True/False
  • Unusual coverage: oscillatory networks (Sync, SyncPR, SyncSegm), PCNN, and graph coloring alongside standard clustering
  • Published in JOSS (2019) with proper citation support
  • Supports Python 3.6+ and C++14, cross-platform (Linux, Windows, macOS)

Caveats

  • Abandoned since 2021: author explicitly states “no further maintenance, issue addressing, or feature development”
  • Several algorithms (BANG, BIRCH, CLARANS, EMA, Sync-SOM, all graph coloring, some neural nets) lack C++ implementations
  • Version 0.11.dev appears to be the final state

Verdict

Worth studying if you’re researching clustering algorithm implementations or need a reference for oscillatory network code — but do not build production systems on it. For active alternatives, the author themselves recommends looking elsewhere.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.