scipy.sparse.

spdiags#

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

从对角线返回稀疏矩阵。

警告

此函数返回稀疏矩阵,而非稀疏数组。建议您使用 dia_array 以利用稀疏数组功能。(详见下面的注释。)

参数:
dataarray_like

按行存储的矩阵对角线

diagsint 序列或 int

要设置的对角线

  • k = 0 主对角线

  • k > 0 第 k 条上对角线

  • k < 0 第 k 条下对角线

m, nint, 元组, 可选

结果的形状。如果 n 为 None 且 m 是给定的元组,则形状为该元组。如果省略,则矩阵为方阵,其形状为 len(data[0])

formatstr, 可选

结果的格式。默认情况下(format=None),将返回适当的稀疏矩阵格式。此选择可能会更改。

返回:
new_matrix稀疏矩阵

dia_matrix 格式,其值来自 data,位于 diags 指定的对角线上。

另请参阅

diags_array

此函数的更便捷形式

diags

diags_array 的矩阵版本

dia_matrix

稀疏对角线 (DIA) 格式。

注释

此函数可以由等效的 dia_matrix 调用代替,如下所示:

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

示例

>>> 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]])