A Python package for tensor computations.
Project description
pyTensorlab
pyTensorlab is a Python package for tensor computations and complex optimization. The packages provides the following:
- data types to represent sparse, incomplete, structured and decomposed tensors efficiently;
- tools to generate and work with these data types effectively and efficiently;
- algorithms for computing the canonical polyadic decomposition, the multilinear singular value decomposition, the Tucker decomposition or low multilinear rank approximation and the tensor-train decomposition;
- tensorization techniques relying on statistics or Hankelization;
- visualization routines;
- preconditioned Gauss-Newton type optimization methods for complex variables;
- fully typed code, which facilitates development.
pyTensorlab is a reimplementation of the Matlab toolbox Tensorlab. Currently, the feature set is not identical. The Matlab toolbox also supports block term decompositions and has a structured data fusion framework which relies on a domain specific language to easily model coupled matrix and tensor decompositions and prior knowledge. On the other hand, pyTensorlab provides basic support for the TT decomposition and a more complete set of complex Gauss-Newton type optimization algorithms.
Getting Started
To install pyTensorlab, use:
$ pip install pytensorlab
pyTensorlab requires Python 3.10 to take advantage of new typing features. NumPy, SciPy and Numba for underly the main computations. Pymanopt is used for manifold-based optimization for low multilinear rank approximation and Vedo for visualization.
As an example, the canonical polyadic decomposition of a noisy rank-3 tensor can be computed as follows:
>>> import pytensorlab as tl
>>> import numpy as np
>>> shape = (10, 11, 12)
>>> Tpd = tl.PolyadicTensor.random(shape, 3)
>>> Tn = tl.noisy(np.array(Tpd), snr=20)
>>> Tres, info = tl.cpd(Tn, nterm=3)
Citation
If you are using pyTensorlab, please consider citing:
N. Vervliet, S. Hendrikx, R. Widdershoven, N. Govindarajan, S. Sofi, L. De Lathauwer, "pyTensorlab 2025.10," Oct. 2025. Available online at www.pytensorlab.net.
Contributors
We would like to thank all contributors:
- Ayvaz, Muzaffer
- Boussé, Martijn
- De Lathauwer, Lieven
- Devogel, Andreas
- Govindarajan, Nithin
- Hendrikx, Stijn
- Iannacito, Martina
- Seeuws, Nick
- Sofi, Shakir
- Vermeylen, Charlotte
- Vervliet, Nico
- Widdershoven, Raphaël
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytensorlab-2025.12.0.tar.gz.
File metadata
- Download URL: pytensorlab-2025.12.0.tar.gz
- Upload date:
- Size: 219.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.9.13 Linux/5.4.0-216-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37c66348dbd271eb23ef39aa6607636b7a26274f07fd6f66fc3339801e807d34
|
|
| MD5 |
b581cbfe56c54f772a6c3ec079e1b2b3
|
|
| BLAKE2b-256 |
f6108ddb7cd7f5d45427108a75a4a82976c9431f174b33ec6043108eae2e2d03
|
File details
Details for the file pytensorlab-2025.12.0-py3-none-any.whl.
File metadata
- Download URL: pytensorlab-2025.12.0-py3-none-any.whl
- Upload date:
- Size: 254.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.9.13 Linux/5.4.0-216-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
229b0d55cb81b44627fcd0fe7216e2f44b4c496ddb9ab039f8657bdfee10f0d0
|
|
| MD5 |
b5830dc30d682fd191a59a1c2a14c584
|
|
| BLAKE2b-256 |
9ab485fdd8a71c61e4936540406d37400fd489b9f733234a698ec27c1f9cde61
|