tables
Hierarchical datasets for Python
What it is and what it does
PyTables is a Python library built on HDF5 that stores and retrieves hierarchical datasets with built-in compression and an object-oriented API. It optimizes memory and disk usage by compressing data on write and decompressing on read, supporting state-of-the-art Blosc compression out of the box. The library is designed for scientific and data-intensive applications that work with large multidimensional arrays, tables of fixed-length records, and enlargeable arrays—not as a relational database replacement, but as a specialized tool for efficient bulk storage and retrieval.
The package depends on NumPy, NumExpr, packaging, py-cpuinfo, and blosc2, and requires a system HDF5 library to compile. It is actively maintained, supports Python 3.11 through 3.14, and offers pre-built wheels for macOS (Intel and ARM), Linux (x86_64 and aarch64), and Windows, reducing installation friction on common platforms.
Use it for:
- Store and query large time-series datasets from data acquisition systems or network monitoring without the overhead of a relational database.
- Archive multidimensional scientific simulation outputs (e.g., climate models, physics simulations) with efficient compression and hierarchical organization.
- Centralize system logs or structured event data from distributed systems in a single compressed repository.
- Perform interactive analysis on datasets too large to fit in memory by using PyTables' iterators and lazy-loading capabilities.
- Replace inefficient flat-file or database storage for columnar scientific data where compression and I/O speed are critical.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyTables provides an object-oriented interface to HDF5 for storing and retrieving hierarchical datasets with efficient compression, designed to handle extremely large amounts of multidimensional data.
Yes, if you work with large multidimensional datasets or time-series data and need efficient compression and hierarchical storage. The active maintenance, permissive license, and broad platform support make it a solid choice. Install friction is moderate due to HDF5 dependency, but pre-built wheels mitigate this for common platforms. Not suitable if you need relational query capabilities or are working with small datasets where compression overhead outweighs benefits.
Install
tables on PyPI
pip
pip install tablesuv
uv add tablespoetry
poetry add tablesInstalling tables
Before you install
Medium install friction due to compiled C extensions and HDF5 library dependency. Active maintenance with recent releases; requires HDF5 1.10.5 or above and system libraries like libhdf5-serial-dev on Linux. Pre-built wheels available for common platforms reduce friction.
License in practice
BSD 3-Clause License (permissive) allows commercial and private use with minimal restrictions; attribution required but no copyleft obligations.
Quickstart
pip install tables
import tables
with tables.open_file('data.h5', mode='w') as h5file:
h5file.create_table('/', 'mytable', description={'col1': tables.Int32Col()})
Requires HDF5 C library (libhdf5-serial-dev on Debian/Ubuntu) and Python 3.11 or later; blosc2 compression library is mandatory.
Verify before relying
- Whether the stated 3–5x compression ratio applies to typical user workloads or only to highly compressible data.
- Performance characteristics compared to alternatives like Parquet or NetCDF for specific use cases.
- Whether all optional compressors (LZO, bzip2) are available in pre-built wheels or require separate installation.
Package facts
| License | BSD 3-Clause License (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 5 — numpy, numexpr, packaging, py-cpuinfo, blosc2 |
| Maintenance | actively maintained — 166 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 6,451,690/month — #1,908 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tables-3.11.1-cp311-abi3-macosx_10_9_x86_64.whl; tables-3.11.1-cp311-abi3-macosx_11_0_arm64.whl; tables-3.11.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; tables-3.11.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; tables-3.11.1-cp311-abi3-win_amd64.whl; tables-3.11.1-cp314-cp314t-macosx_10_15_x86_64.whl; tables-3.11.1-cp314-cp314t-macosx_11_0_arm64.whl; tables-3.11.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; tables-3.11.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; tables-3.11.1-cp314-cp314t-win_amd64.whl
Keywords: hdf5
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
hdf5pluginRegisters HDF5 compression filters (Blosc,…
unclear · top 15,000 on PyPI
hdmfHDMF provides APIs for defining hierarchical…
permissive · top 15,000 on PyPI
h5pyh5py reads and writes HDF5 files from Python,…
permissive · top 1,000 on PyPI
hickleHickle serializes Python objects to HDF5 files…
unclear · top 15,000 on PyPI
bloscPython wrapper for the Blosc compression…
permissive · top 15,000 on PyPI
h5groveh5grove provides building blocks for serving…
permissive · top 15,000 on PyPI
mudataMuData is a container for multimodal omics data…
permissive · top 15,000 on PyPI
netCDF4netcdf4 provides a Python interface to read,…
permissive · top 5,000 on PyPI
h5netcdfh5netcdf reads and writes netCDF4 files using…
permissive · top 5,000 on PyPI
tiledbTileDB-Py provides a Python interface to the…
permissive · top 15,000 on PyPI