iminuit
Jupyter-friendly Python frontend for MINUIT2 in C++
Decision gist · record as of 2026-08-14
Yes, if you need parameter estimation with rigorous error analysis. iminuit is production-stable, actively maintained, has no known vulnerabilities, and is the standard Python interface to MINUIT2. The dual MIT/LGPL license requires review for proprietary use. Medium install friction (compiled wheels) is typical for scientific packages and not a barrier on supported platforms.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9+.
- Compiled C++ extensions are pre-built for common platforms; building from source requires a C++ compiler.
- Medium install friction due to compiled C++ extensions, but wheels are available for Python 3.9+ on macOS, Linux, and Windows.
License · maintenance · safety
MIT+LGPL (copyleft) — Dual-licensed under MIT and LGPL (copyleft treatment). Users must comply with LGPL obligations if distributing modifications, or may choose MIT terms for simpler use cases; review the license terms for your deployment model.
last release 2025-11-09 (278 days) · last repo commit 2026-08-10 · 319 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 226,878 downloads/mo, #9,192 on PyPI
Alternatives
Verify before relying
pip install iminuit numpy
from iminuit import Minuit
from iminuit.cost import UnbinnedNLL
import numpy as np
cost = UnbinnedNLL(data, pdf_function)
m = Minuit(cost, param1=initial_value)
m.migrad()
m.hesse()- Whether optional dependencies (numba, matplotlib, scipy, ipywidgets) are automatically detected and enabled at install time or require explicit installation
- Performance characteristics when used with Numba-compiled functions compared to native MINUIT2 or other optimizers
What it is and what it does
iminuit wraps MINUIT2, CERN's C++ optimization library, to solve parameter estimation problems in statistics and physics. It is designed for fitting statistical models—finding best-fit parameters and computing error estimates via likelihood profile analysis. The package includes built-in cost functions for common tasks (unbinned and binned maximum-likelihood, least-squares, template fits with error propagation) and can combine multiple cost functions additively. It integrates with Jupyter for interactive fitting and visualization.
The package depends only on numpy at runtime but gains optional features from scipy (Minos intervals), numba (JIT compilation for speed), matplotlib (visualization), and ipywidgets (interactive mode). It supports current Python versions on macOS, Linux, and Windows, and has been actively maintained since 2012 with no known security vulnerabilities.
Use it for
- Fit a probability density function to unbinned data and extract maximum-likelihood parameter estimates with error bars
- Perform least-squares fitting to binned histograms with optional robustness to outliers
- Combine multiple cost functions (e.g., signal + background models) and optimize jointly
- Compute confidence intervals via Minos profile analysis for arbitrary confidence levels (with scipy)
- Accelerate likelihood evaluation using Numba-compiled probability functions for high-dimensional data
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need parameter estimation with rigorous error analysis.
iminuit is production-stable, actively maintained, has no known vulnerabilities, and is the standard Python interface to MINUIT2. The dual MIT/LGPL license requires review for proprietary use. Medium install friction (compiled wheels) is typical for scientific packages and not a barrier on supported platforms.
Install
iminuit on PyPI
Before you install
Medium install friction due to compiled C++ extensions, but wheels are available for Python 3.9+ on macOS, Linux, and Windows. The package is actively maintained with recent commits and has been stable since its 2012 release.
Requires Python 3.9+. Compiled C++ extensions are pre-built for common platforms; building from source requires a C++ compiler.
License in practice
Dual-licensed under MIT and LGPL (copyleft treatment). Users must comply with LGPL obligations if distributing modifications, or may choose MIT terms for simpler use cases; review the license terms for your deployment model.
Quickstart
pip install iminuit numpy
from iminuit import Minuit
from iminuit.cost import UnbinnedNLL
import numpy as np
cost = UnbinnedNLL(data, pdf_function)
m = Minuit(cost, param1=initial_value)
m.migrad()
m.hesse()
Verify before relying
- Whether optional dependencies (numba, matplotlib, scipy, ipywidgets) are automatically detected and enabled at install time or require explicit installation
- Performance characteristics when used with Numba-compiled functions compared to native MINUIT2 or other optimizers
Package facts
| License | MIT+LGPL copyleft |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Actively maintained 278 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 226,878 / month, #9,192 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)License :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixProgramming Language :: C++Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/Engineering :: MathematicsTopic :: Scientific/Engineering :: PhysicsTopic :: Software Development |
Evidence: iminuit-2.32.0-cp310-cp310-macosx_10_9_x86_64.whl; iminuit-2.32.0-cp310-cp310-macosx_11_0_arm64.whl; iminuit-2.32.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; iminuit-2.32.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; iminuit-2.32.0-cp310-cp310-musllinux_1_2_aarch64.whl; iminuit-2.32.0-cp310-cp310-musllinux_1_2_x86_64.whl; iminuit-2.32.0-cp310-cp310-win32.whl; iminuit-2.32.0-cp310-cp310-win_amd64.whl; iminuit-2.32.0-cp311-cp311-macosx_10_9_x86_64.whl; iminuit-2.32.0-cp311-cp311-macosx_11_0_arm64.whl; iminuit-2.32.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; iminuit-2.32.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; iminuit-2.32.0-cp311-cp311-musllinux_1_2_aarch64.whl; iminuit-2.32.0-cp311-cp311-musllinux_1_2_x86_64.whl; iminuit-2.32.0-cp311-cp311-win32.whl; iminuit-2.32.0-cp311-cp311-win_amd64.whl; iminuit-2.32.0-cp311-cp311-win_arm64.whl; iminuit-2.32.0-cp312-cp312-macosx_10_13_x86_64.whl; iminuit-2.32.0-cp312-cp312-macosx_11_0_arm64.whl; iminuit-2.32.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “maximum likelihood fitting”
- iminuitiminuit is a Python interface to MINUIT2 (CERN's C++ optimization…
- PeakUtilsPeakUtils detects peaks in 1D data and refines their positions…
- reliabilityReliability engineering and survival analysis library that fits…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also lmfit · pymc · dask-glm · fastjet · numpyro · nutpie · pystan · PeakUtils · statsmodels · xarray-einstats