The matrix module defines an abstract Matrix object and several implementations. Matrix objects support basic addition and subtraction operations and provide a consistent insterface for solving linear systems. Matrices can be converted into other forms suitable for external processing via the export method.

class nutils.matrix.Backend

Bases: object

backend base class

assemble(self, data, index, shape)

Assemble a (sparse) tensor based on index-value pairs.


This function is abstract.


list of weak references to the object (if defined)

class nutils.matrix.Matrix(shape)

Bases: object

matrix base class

__add__(self, other)

add two matrices

__mul__(self, other)

multiply matrix with a scalar

__neg__(self, other)

negate matrix


transpose matrix

rowsupp(self, tol=0)

return row indices with nonzero/non-small entries

solve(self, rhs=None, *, lhs0=None, constrain=None, rconstrain=None, **solverargs)

Solve system given right hand side vector and/or constraints.

  • rhs (float vector or None) – Right hand side vector. None implies all zeros.
  • lhs0 (class:float vector or None) – Initial values. None implies all zeros.
  • constrain (float or bool array, or None) – Column constraints. For float values, a number signifies a constraint, NaN signifies a free dof. For boolean, a True value signifies a constraint to the value in lhs0, a False value signifies a free dof. None implies no constraints.
  • rconstrain (bool array or None) – Row constrains. A True value signifies a constrains, a False value a free dof. None implies that the constraints follow those defined in constrain (by implication the matrix must be square).

Left hand side vector.

Return type:


submatrix(self, rows, cols)

Create submatrix from selected rows, columns.

  • rows (bool/int array selecting rows for keeping) –
  • cols (bool/int array selecting columns for keeping) –

Matrix instance of reduced dimensions

Return type:


export(self, form)

Export matrix data to any of supported forms.

Parameters:form (str) –
  • “dense” : return matrix as a single dense array
  • ”csr” : return matrix as 3-tuple of (data, indices, indptr)
  • ”coo” : return matrix as 2-tuple of (data, (row, col))

list of weak references to the object (if defined)


Make rhs optional, add lhs0, constrain, rconstrain arguments.

See Matrix.solve.

class nutils.matrix.Numpy

Bases: nutils.matrix.Backend

matrix backend based on numpy array

class nutils.matrix.NumpyMatrix(core)

Bases: nutils.matrix.Matrix

matrix based on numpy array

class nutils.matrix.Scipy

Bases: nutils.matrix.Backend

matrix backend based on scipy’s sparse matrices

class nutils.matrix.ScipyMatrix(core)

Bases: nutils.matrix.Matrix

matrix based on any of scipy’s sparse matrices