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. 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


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.12.0.tar.gz (219.7 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.12.0-py3-none-any.whl (254.3 kB view details)

Uploaded Python 3

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

Hashes for pytensorlab-2025.12.0.tar.gz
Algorithm Hash digest
SHA256 37c66348dbd271eb23ef39aa6607636b7a26274f07fd6f66fc3339801e807d34
MD5 b581cbfe56c54f772a6c3ec079e1b2b3
BLAKE2b-256 f6108ddb7cd7f5d45427108a75a4a82976c9431f174b33ec6043108eae2e2d03

See more details on using hashes here.

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

Hashes for pytensorlab-2025.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 229b0d55cb81b44627fcd0fe7216e2f44b4c496ddb9ab039f8657bdfee10f0d0
MD5 b5830dc30d682fd191a59a1c2a14c584
BLAKE2b-256 9ab485fdd8a71c61e4936540406d37400fd489b9f733234a698ec27c1f9cde61

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