scipy.sparse.

spdiags#

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

從對角線返回稀疏矩陣。

參數:
dataarray_like

以 row-wise 儲存的矩陣對角線

diagsint 或 int 序列

要設定的對角線

  • k = 0 主對角線

  • k > 0 第 k 個上對角線

  • k < 0 第 k 個下對角線

m, nint, tuple, optional

結果的形狀。如果 n 為 None 且 m 為給定的 tuple,則形狀為此 tuple。如果省略,則矩陣為方形,且其形狀為 len(data[0])。

formatstr, optional

結果的格式。預設情況下 (format=None) 會返回適當的稀疏矩陣格式。此選擇可能會變更。

.. warning:

此函數返回稀疏矩陣 – 而非稀疏陣列。我們鼓勵您使用 dia_array 以利用稀疏陣列功能。

另請參閱

diags_array

此函數的更方便形式

diags

diags_array 的矩陣版本

dia_matrix

稀疏 DIAgonal 格式。

筆記

此函數可以被等效的 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]])