pyjpt
Joint Probability Trees - A formalism for learning and reasoning about joint probability distributions
What it is and what it does
pyjpt implements Joint Probability Trees, a formalism for learning tractable probabilistic models from data. Unlike rigid dependency models, JPTs build tree structures that partition the probability space based on what the training data reveals, then use those partitions for inference. The package supports hybrid models mixing symbolic (discrete) and subsymbolic (continuous) variables without requiring prior knowledge of variable relationships.
The core value is interpretability: every inference result comes with white-box reasoning about how the tree structure produced that answer. Learning and inference scale linearly. The package wraps Cython extensions for performance and depends on scipy, numpy, pandas, anytree, tqdm, dnutils, deprecated, and typing-extensions for numerical and tree operations. Optional dependencies add plotting, sequential modeling, and MLflow integration.
Use it for:
- Learn probabilistic models from mixed symbolic and continuous data without specifying a dependency structure upfront.
- Perform interpretable probabilistic inference where you need to explain why a posterior probability was computed.
- Build hybrid models combining discrete categories and continuous measurements in a single tractable framework.
- Analyze data where the relevant probability partitions are unknown and must be discovered from training examples.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pyjpt learns and reasons about joint probability distributions using tree-based partitioning, supporting both symbolic and subsymbolic variables in a single hybrid model with interpretable white-box inference.
Yes, if you need interpretable probabilistic inference on hybrid data and can tolerate medium install friction. The package is actively maintained, has no known vulnerabilities, and offers a genuinely different approach to probabilistic modeling—tree-based partitioning rather than fixed dependency graphs. Verify the license terms first.
Install
pyjpt on PyPI
pip
pip install pyjptuv
uv add pyjptpoetry
poetry add pyjptInstalling pyjpt
Before you install
Medium friction: 8 runtime dependencies including scipy, numpy, and pandas. Wheels available for multiple Python versions on Linux x86_64. Last release 74 days ago with active maintenance status.
License in practice
License treatment is unclear—no SPDX identifier or raw license text provided. Verify the license terms before use in proprietary or copyleft-sensitive contexts.
Quickstart
pip install pyjpt
import pyjpt
# Create and train a JPT model on your data
# See documentation for full API usage
Requires Python >=3.8. Cython extensions are compiled during installation; set JPT_NO_CYTHON=1 to skip pre-compilation.
Verify before relying
- Whether the unclear license permits commercial use or requires attribution.
- Performance characteristics and scalability limits for large datasets.
- Availability of pre-built wheels for platforms beyond Linux x86_64.
- Maturity and stability guarantees relative to the research publication.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 8 — dnutils, scipy, numpy, pandas, deprecated, tqdm, anytree, typing-extensions |
| Maintenance | actively maintained — 74 days since the last release |
| First released | |
| Downloads | 232,272/month — #9,071 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyjpt-1.3.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; pyjpt-1.3.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; pyjpt-1.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; pyjpt-1.3.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
tensorflow-probabilityTensorFlow Probability provides probabilistic…
permissive · top 5,000 on PyPI
pgmpypgmpy provides data structures and algorithms…
unclear · top 5,000 on PyPI
problogProbLog is a probabilistic logic programming…
permissive · top 15,000 on PyPI
pymc-extrasExtends PyMC with specialized distributions,…
permissive · top 15,000 on PyPI
pyro-pplPyro is a deep probabilistic programming…
permissive · top 5,000 on PyPI
numpyroNumPyro is a probabilistic programming library…
permissive · top 15,000 on PyPI
pyAgrum-nightlypyAgrum is a Python library for creating,…
unclear · top 15,000 on PyPI
aplrAPLR builds interpretable regression and…
permissive · top 15,000 on PyPI
py_treespy_trees implements behaviour trees in Python,…
permissive · top 15,000 on PyPI
powerlawFits heavy-tailed distributions like power laws…
permissive · top 15,000 on PyPI