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:
- k = 0 the main diagonal
- k > 0 the kth upper diagonal
- k < 0 the kth lower diagonal
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
more convenient form of this function
matrix version of diags_array
the sparse DIAgonal format.
Notes
This function can be replaced by an equivalent call to dia_matrix
as:
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]])