skillfed

tables

Hierarchical datasets for Python

tables v3.11.1 6.5M downloads/30d#1,908 on PyPI1,371
Permissive license BSD 3-Clause License Active released

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 tables

uv

uv add tables

poetry

poetry add tables

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: Microsoft :: WindowsOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: DatabaseTopic :: Software Development :: Libraries :: Python Modules

Tags

hdf5 python interfacehierarchical data storagelarge dataset compressionscientific data managementmultidimensional array storageefficient data serializationblosc compression support
hdf5scientific-datacompression

More Python Modules packages