pgmpy/pgmpy

Python Toolkit for Causal and Probabilistic Reasoning

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 21 minutes ago
Added to GitGenius on September 20th, 2026
Created on September 20th, 2013
Open Issues & Pull Requests: 640 (+0)
GitHub issues: Enabled
Number of forks: 1,167
Total Stargazers: 3,332 (+0)
Total Subscribers: 70 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 458
New in 7 days: 4
Closed in 7 days: 4
Avg open age: 1,291 days
Stale 30+ days: 16
Stale 90+ days: 1

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 2
Events in 7 days: 671

Top labels

  • Good First Issue (131)
  • Causal Discovery (110)
  • Documentation (77)
  • Bug (72)
  • Model (71)
  • Tests (66)
  • Enhancement (42)
  • Datasets (30)

Detailed Description

pgmpy is a Python toolkit for causal and probabilistic reasoning using graphical models.

The toolkit addresses the need to perform causal discovery, causal inference, and probabilistic reasoning on complex systems represented as graphs. It provides data structures for multiple types of graphical models including directed acyclic graphs, Bayesian networks, dynamic Bayesian networks, and structural equation models. The approach implements algorithms for tasks spanning causal discovery, causal identification, causal and probabilistic inference, model validation, parameter estimation, and simulation. A unifying design principle makes these algorithms composable and modular, allowing them to be extended or combined.

Developers working with causal inference or probabilistic graphical models should consider pgmpy if they need a comprehensive toolkit with broad algorithm coverage. The project suits research and applied work involving causal discovery pipelines, Bayesian network inference, or validation of causal models. The toolkit's scikit-learn compatibility means algorithms can be used standalone, integrated into sklearn pipelines, or serve as foundations for higher-level applications, making it flexible across different integration scenarios.

The project shows consistent development activity with regular commits across multiple areas of the codebase. Work spans algorithm implementations, documentation updates, and maintenance tasks. The toolkit receives contributions addressing both core functionality and peripheral concerns like build systems and testing infrastructure. Development appears distributed across different subsystems rather than concentrated in a single area.