PyLanczos
Overview
PyLanczos is a Lanczos diagonalization library. Its core part is written in C++ as LambdaLanczos.
Usage
All samples are available here.
NumPy and SciPy matrix
matrix = np.array([[2.0, 1.0, 1.0],
[1.0, 2.0, 1.0],
[1.0, 1.0, 2.0]])
engine = PyLanczos(matrix, True, 2) # Find 2 maximum eigenpairs
eigenvalues, eigenvectors = engine.run()
print("Eigenvalue: {}".format(eigenvalues))
print("Eigenvector:")
print(eigenvectors)
Note: Use of SciPy sparse matrix is recommended to take full advantage of Lanczos algorithm.
Customized operation
You can also attach your customized function:
tensor = np.zeros((2, 2, 2, 2), dtype='float64')
tensor[0, 0, 0, 0] = 1
# and so on...
## Matrix-vector (or tensor-matrix) multiplication function
def mv_mul(v_in, v_out):
v_in.shape = (2, 2)
v_out.shape = (2, 2)
np.einsum("ijkl, kl -> ij", tensor, v_in, out=v_out, optimize="optimal")
## Calculate an "eigenmatrix" for the 4th-order tensor.
engine = PyLanczos.create_custom(mv_mul, n, 'float64', False, 1) # Find 1 minimum eigenpair
eigenvalues, eigenmatrices = engine.run()
eigenmatrices.shape = (2, 2)
print("Eigenvalue: {}".format(eigenvalues))
print("Eigenmatrix:")
print(eigenmatrices)
There is a full sample with detailed description.
Installation
pip install pylanczos
Requirements
C++11 compatible environment
License
Author
PyPI repository
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pylanczos-2.1.2.tar.gz
(20.8 kB
view details)
File details
Details for the file pylanczos-2.1.2.tar.gz.
File metadata
- Download URL: pylanczos-2.1.2.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6b86f2af8175c4dc316e1b9e389914ecb9e07973920e36352aac3176c09abd8
|
|
| MD5 |
e8dfd51c575957ce02ca9f6cb977c023
|
|
| BLAKE2b-256 |
058dd4dbcda62dbaf8a749c13848a62d67ba7d5f275c70a63c41201dba7b2f62
|