npTDMS
Cross-platform, NumPy based module for reading TDMS files produced by LabView
What it is and what it does
npTDMS is a Python library for reading and writing TDMS files, the binary format produced by LabVIEW and other National Instruments data acquisition tools. It exposes TDMS data as numpy arrays, making it easy to integrate acquired measurements into scientific Python workflows. The library understands TDMS's hierarchical structure—files contain groups, which contain channels, and channels hold the actual array data alongside metadata properties.
You can read entire files into memory with `TdmsFile.read()` for quick access, or use `TdmsFile.open()` for streaming access to large files when memory is constrained. Writing is supported through `TdmsWriter` and `ChannelObject`, allowing you to construct TDMS files from numpy arrays. Optional dependencies enable export to HDF5 (`hdf` extra) or pandas DataFrames (`pandas` extra), and thermocouple scaling support (`thermocouple_scaling` extra).
Use it for:
- Import measurement data from LabVIEW DAQ systems into Python for analysis and visualization.
- Convert TDMS files to HDF5 or pandas DataFrames for use in machine learning or statistical pipelines.
- Archive or reformat acquired sensor data by reading TDMS and writing to a different format.
- Process large TDMS files with streaming access to avoid loading entire datasets into memory.
- Automate data extraction from multiple TDMS channels for batch processing or report generation.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Read and write TDMS files (LabVIEW data format) as numpy arrays, with support for hierarchical groups and channels plus optional export to HDF5 or pandas DataFrames.
Yes. npTDMS is stable (Production/Stable status), actively maintained, has no known vulnerabilities, and solves a specific problem—TDMS I/O—with a minimal dependency footprint. The LGPL-3.0 copyleft license is standard for scientific tools but requires review if you ship proprietary code. Install it if you work with LabVIEW data or National Instruments DAQ systems.
Install
nptdms on PyPI
pip
pip install nptdmsuv
uv add nptdmspoetry
poetry add nptdmsInstalling npTDMS
Before you install
Low friction: pure Python wheel with only numpy as a runtime dependency. Active maintenance with a release 51 days ago and recent commits; supports Python 3.9–3.12.
License in practice
LGPL-3.0-only (copyleft): you may use and modify the package freely, but any derivative work must also be released under LGPL-3.0 or a compatible license. Proprietary applications using this package should review copyleft obligations.
Quickstart
from nptdms import TdmsFile
tdms_file = TdmsFile.read("path_to_file.tdms")
group = tdms_file['group name']
channel = group['channel name']
channel_data = channel[:]
Requires Python ≥3.9; does not support TDMS files with XML headers or extended precision floating point data.
Verify before relying
- Performance characteristics when working with very large TDMS files or many channels.
- Completeness of write support relative to all TDMS file features produced by LabVIEW.
Package facts
| License | LGPL-3.0-only (copyleft) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | actively maintained — 51 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 343,268/month — #7,384 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nptdms-1.11.0-py3-none-any.whl
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
GridDataFormatsGridDataFormats reads and writes n-dimensional…
copyleft · top 15,000 on PyPI
pandas-read-xmlConverts XML files into pandas DataFrames, with…
permissive · top 15,000 on PyPI
asammdfasammdf parses, edits, and exports ASAM MDF…
copyleft · top 5,000 on PyPI
nptypingProvides type hints and runtime type checking…
permissive · top 15,000 on PyPI
pymatreaderReads MATLAB .mat files in both legacy and…
permissive · top 15,000 on PyPI
uprootUproot reads and writes ROOT files (the data…
permissive · top 5,000 on PyPI
uproot3Reads and writes ROOT files (the data format…
permissive · top 15,000 on PyPI
nidaqmxProvides a Python API to control and acquire…
permissive · top 15,000 on PyPI
awkward-pandasExtends pandas DataFrames to store and…
permissive · top 15,000 on PyPI
h5pyh5py reads and writes HDF5 files from Python,…
permissive · top 1,000 on PyPI