PeakUtils
Peak detection utilities for 1D data
What it is and what it does
PeakUtils is a signal processing library focused on locating and characterizing peaks in one-dimensional data. It provides functions to estimate signal baselines, identify peak positions by index, and refine peak locations using Gaussian fitting or centroid calculation. The library sits on top of numpy and scipy, making it suitable for scientific and engineering workflows where precise peak localization matters—spectroscopy, chromatography, time-series analysis, and similar domains.
The package is stable and has been in production use since 2014, though it is no longer actively maintained. It targets straightforward peak-finding tasks where you need both the raw peak indices and optionally higher-resolution position estimates. Installation is lightweight, and the API is minimal, making it easy to integrate into existing analysis pipelines.
Use it for:
- Locate absorption or emission peaks in spectroscopic data and refine their positions with Gaussian fitting
- Detect chromatography peaks and compute their centroids for quantitative analysis
- Find local maxima in time-series or sensor data and estimate their true positions
- Estimate and remove baseline drift before peak detection in noisy signals
- Identify multiple peaks in a single pass and rank them by prominence or height
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PeakUtils detects peaks in 1D data and refines their positions through baseline estimation, Gaussian fitting, and centroid computation.
Yes, if your peak-detection task is straightforward and you are comfortable with a dormant but stable library. The low install friction, permissive license, and proven track record make it a reasonable choice for standard 1D peak finding. However, verify compatibility with your current numpy and scipy versions, and consider whether the library's Gaussian and centroid methods suit your data. If you need active maintenance or advanced features, evaluate alternatives.
Install
peakutils on PyPI
pip
pip install peakutilsuv
uv add peakutilspoetry
poetry add peakutilsInstalling PeakUtils
Before you install
Low friction install with only numpy and scipy as runtime dependencies. Package is dormant (778 days since last release) but marked Production/Stable; no active maintenance signal.
License in practice
MIT license permits commercial and private use with minimal restrictions; attribution required but no copyleft obligations.
Quickstart
import numpy as np
import peakutils
data = np.array([0, 1, 3, 2, 1, 0]) # 1D signal
indexes = peakutils.indexes(data, thres=0.3, min_dist=1)
print(indexes) # Peak indices
Verify before relying
- Whether the package still works reliably with current numpy/scipy versions despite dormancy
- Whether Gaussian fitting and centroid computation are suitable for your specific peak shape and noise profile
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — numpy, scipy |
| Maintenance | dormant — 778 days since the last release |
| First released | |
| Downloads | 75,808/month — #14,680 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: PeakUtils-1.3.5-py3-none-any.whl
Keywords: peak, detection, search, gaussian, centroid, baseline, maximum
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pybaselinesProvides 50+ baseline correction algorithms for…
permissive · top 15,000 on PyPI
pyPPGAnalyzes finger photoplethysmogram (PPG)…
agpl · top 15,000 on PyPI
gstoolsGSTools provides geostatistical tools for…
copyleft · top 15,000 on PyPI
spglmFits Gaussian, Poisson, QuasiPoisson, and…
permissive · top 15,000 on PyPI
iminuitiminuit is a Python interface to MINUIT2…
copyleft · top 15,000 on PyPI
neurokit2NeuroKit2 processes physiological signals (ECG,…
permissive · top 15,000 on PyPI
pwlfFits continuous piecewise linear functions to…
permissive · top 15,000 on PyPI
photutilsPhotutils provides tools for detecting and…
permissive · top 15,000 on PyPI
PyWaveletsPyWavelets provides discrete, continuous, and…
permissive · top 5,000 on PyPI
gmrGaussian Mixture Models for clustering and…
permissive · top 15,000 on PyPI