skillfed

wfdb

The WFDB Python package: tools for reading, writing, and processing physiologic signals and annotations.

wfdb v4.3.1 247.2K downloads/30d#8,697 on PyPI847
Permissive license MIT License Active released

What it is and what it does

WFDB is a Python library for working with physiologic signal data in the Waveform Database format, a standard used in biomedical research and clinical applications. It provides core I/O functionality to read and write signal files and annotations, along with processing and visualization capabilities built on numpy, scipy, pandas, and matplotlib. The package is inspired by the original WFDB Software Package but operates as an independent project adhering to the WFDB specification.

Typical use involves loading time-series physiologic data (such as ECG, EEG, or other biomedical signals) from WFDB-formatted files, manipulating or analyzing the signals using standard scientific Python tools, and generating plots or exporting results. It integrates with the broader scientific Python ecosystem through its dependencies, making it suitable for research workflows, clinical data analysis, and signal processing pipelines that work with standardized physiologic datasets.

Use it for:

  • Load and analyze ECG or EEG recordings from PhysioNet datasets for research or clinical validation studies.
  • Convert physiologic signal data between WFDB format and other formats (via numpy/pandas integration) for cross-platform analysis.
  • Visualize multi-channel biomedical signals with annotations to inspect data quality or identify events.
  • Process batch collections of physiologic records for feature extraction or machine-learning pipelines.
  • Read signal annotations (e.g., beat markers, arrhythmia labels) alongside raw waveforms for supervised learning tasks.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Read, write, process, and plot physiologic signal and annotation data in WFDB format, a standard for biomedical time-series data.

Yes. The package is actively maintained, has no known vulnerabilities, installs with low friction, and is licensed permissively. It is the standard Python tool for WFDB format I/O in biomedical research. Install it if you work with physiologic signals in WFDB format or need to integrate PhysioNet datasets into Python workflows.

Install

wfdb on PyPI

pip

pip install wfdb

uv

uv add wfdb

poetry

poetry add wfdb

Installing wfdb

Before you install

Low friction: pure Python wheel with eight common scientific dependencies (numpy, scipy, pandas, matplotlib, aiohttp, fsspec, requests, soundfile). Active maintenance with a recent release 192 days ago and 847 repository stars.

License in practice

MIT License permits unrestricted use, modification, and distribution in both open-source and commercial contexts with minimal attribution requirements.

Quickstart

pip install wfdb

import wfdb
record = wfdb.rdrecord('path/to/record')
wfdb.plot_wfdb(record=record)

On some systems, libsndfile must be installed separately for soundfile support; see soundfile installation notes.

Verify before relying

  • Whether the package can handle real-time streaming of physiologic signals or is limited to file-based I/O.
  • Performance characteristics and maximum dataset size the package handles efficiently.
  • Extent of annotation format support beyond the core WFDB specification.

Package facts

License MIT License (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 8 — aiohttp, fsspec, matplotlib, numpy, pandas, requests, scipy, soundfile
Maintenance actively maintained — 192 days since the last release
Last repo commit
First released
Downloads 247,228/month — #8,697 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: wfdb-4.3.1-py3-none-any.whl

Tags

physiologic signal processingwfdb format reader writerbiomedical time series dataecg eeg signal analysismedical signal annotationphysionet data toolswaveform database python
biomedical-signalsphysionettime-series-data

More Information Analysis packages