SciPy Interface

Motivation

SciPy offers a large zoo of algorithms which exploit the possibility to pass a so called LinearOperator, which only provides methods for forward and backward transforms together with some simple properties like a datatype and shape parameters. This is exactly what we can provide for a specific instance of a fastmat Matrix. To this end, each fastmat Matrix has the (read only) property scipyLinearOperator, which provides a SciPy Linear operator realizing the transform specified by the fastmat object.

This allows to combine fastmat and SciPy in the most efficient manner possible. Here, fastmat provides the simple and efficient description of a huge variety of linear operators, which can then be used neatly and trouble free in SciPy.

Usage

The interface is provided by the factory fastmat.Matrix.scipyLinearOperator(), which returns an instance of scipy.sparse.linalg.LinearOperator. All fastmat matrices can be used from scipy methods supporting this interface, offering a wide range of functionality – by combining both worlds – to the user.

For a code example, see Solve a System of Linear Equations with Preconditioning.