Skip to main content

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. Hendrickx, 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
  • Hendrickx, Stijn
  • Iannacito, Martina
  • Seeuws, Nick
  • Sofi, Shakir
  • Vermeylen, Charlotte
  • Vervliet, Nico
  • Widdershoven, Raphaël

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytensorlab-2025.10.0b0.tar.gz (218.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytensorlab-2025.10.0b0-py3-none-any.whl (253.2 kB view details)

Uploaded Python 3

File details

Details for the file pytensorlab-2025.10.0b0.tar.gz.

File metadata

  • Download URL: pytensorlab-2025.10.0b0.tar.gz
  • Upload date:
  • Size: 218.8 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

Hashes for pytensorlab-2025.10.0b0.tar.gz
Algorithm Hash digest
SHA256 16aa76e2295e5197b9b79cd21b52a879949eaa95ace72ed29c06bc614e22799a
MD5 14f049e36a718ef360910f9dc2641590
BLAKE2b-256 4b35ae97ec9088bac60ca87fbf6abc9596683cf335af2da5fc358fd323ab9e98

See more details on using hashes here.

File details

Details for the file pytensorlab-2025.10.0b0-py3-none-any.whl.

File metadata

  • Download URL: pytensorlab-2025.10.0b0-py3-none-any.whl
  • Upload date:
  • Size: 253.2 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

Hashes for pytensorlab-2025.10.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd5430750fe7d63fd9c0b46163e3ed841bebc2db14cc6cb757bc5d81f4e952bf
MD5 9dc7045105f7fb8ce018cc96796b2c52
BLAKE2b-256 798009658764fb513eefa61607253109dfc0fd97daef42987685f15d96e9cf71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page