spdiags#
- scipy.sparse.spdiags(data, diags, m=None, n=None, format=None)[source]#
- Return a sparse matrix from diagonals. - Warning - This function returns a sparse matrix – not a sparse array. You are encouraged to use - dia_arrayto take advantage of the sparse array functionality. (See Notes below.)- 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. 
 
- Returns:
- new_matrixsparse matrix
- dia_matrixformat with values in- dataon diagonals from- diags.
 
 - 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]])