spdiags — SciPy v1.15.2 Manual (original) (raw)

scipy.sparse.

scipy.sparse.spdiags(data, diags, m=None, n=None, format=None)[source]#

Return a sparse matrix from diagonals.

Parameters:

dataarray_like

Matrix diagonals stored row-wise

diagssequence of int or an int

Diagonals to set:

m, nint, tuple, optional

Shape of the result. If n is None and m is a given tuple, the shape is this tuple. If omitted, the matrix is square and its shape is len(data[0]).

formatstr, optional

Format of the result. By default (format=None) an appropriate sparse matrix format is returned. This choice is subject to change.

.. warning::

This function returns a sparse matrix – not a sparse array. You are encouraged to use dia_array to take advantage of the sparse array functionality.

See also

diags_array

more convenient form of this function

diags

matrix version of diags_array

dia_matrix

the sparse DIAgonal format.

Notes

This function can be replaced by an equivalent call to dia_matrixas:

dia_matrix((data, diags), shape=(m, n)).asformat(format)

Examples

import numpy as np from scipy.sparse import spdiags data = np.array([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]) diags = np.array([0, -1, 2]) spdiags(data, diags, 4, 4).toarray() array([[1, 0, 3, 0], [1, 2, 0, 4], [0, 2, 3, 0], [0, 0, 3, 4]])