npTDMS
Cross-platform, NumPy based module for reading TDMS files produced by LabView
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python ≥3.9; does not support TDMS files with XML headers or extended precision floating point data.
- 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 · maintenance · safety
LGPL-3.0-only (copyleft) — 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.
last release 2026-06-24 (51 days) · last repo commit 2026-08-02 · 274 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 343,268 downloads/mo, #7,384 on PyPI
Alternatives
Verify before relying
from nptdms import TdmsFile
tdms_file = TdmsFile.read("path_to_file.tdms")
group = tdms_file['group name']
channel = group['channel name']
channel_data = channel[:]- 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.
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 on it.
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
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.
Requires Python ≥3.9; does not support TDMS files with XML headers or extended precision floating point data.
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[:]
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 packagenumpy |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: Science/ResearchNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9Topic :: Scientific/Engineering |
Evidence: nptdms-1.11.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “read TDMS files”
- npTDMSRead and write TDMS files (LabVIEW data format) as numpy arrays, with…
- arParses and reads ar archive files (.a), allowing you to list,…
- tomlParses and generates TOML configuration files, converting between…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also GridDataFormats · pandas-read-xml · asammdf · nptyping · pymatreader · uproot · uproot3 · nidaqmx · awkward-pandas · h5py