scipy.sparse.
diags_array#
- scipy.sparse.diags_array(diagonals, /, *, offsets=0, shape=None, format=None, dtype=None)[原始碼]#
從對角線建構稀疏陣列。
- 參數:
- diagonalsarray_like 序列
包含陣列對角線的序列,對應於 offsets。
- offsetsint 或 int 序列,選用
- 要設定的對角線(不允許重複的偏移量)
k = 0 主對角線 (預設)
k > 0 第 k 個上對角線
k < 0 第 k 個下對角線
- shapeint 元組,選用
結果的形狀。如果省略,則返回一個足以包含對角線的正方形陣列。
- format{“dia”, “csr”, “csc”, “lil”, …}, 選用
結果的矩陣格式。預設情況下 (format=None) 返回適當的稀疏陣列格式。此選擇可能會變更。
- dtypedtype,選用
陣列的資料類型。
註解
不允許重複的對角線偏移量。
來自
diags_array
的結果是以下項目的稀疏等效項np.diag(diagonals[0], offsets[0]) + ... + np.diag(diagonals[k], offsets[k])
diags_array
與dia_array
在處理非對角線的方式上有所不同。具體來說,dia_array
假設資料輸入包含正/負偏移量之列的開頭/結尾的填充(忽略的值),而diags_array` 假設 輸入 資料 沒有 填充。 輸入 ``diagonals``
中的每個值都會被使用。在 1.11 版本中新增。
範例
>>> from scipy.sparse import diags_array >>> diagonals = [[1, 2, 3, 4], [1, 2, 3], [1, 2]] >>> diags_array(diagonals, offsets=[0, -1, 2]).toarray() array([[1., 0., 1., 0.], [1., 2., 0., 2.], [0., 2., 3., 0.], [0., 0., 3., 4.]])
支援純量廣播(但需要指定形狀)
>>> diags_array([1, -2, 1], offsets=[-1, 0, 1], shape=(4, 4)).toarray() array([[-2., 1., 0., 0.], [ 1., -2., 1., 0.], [ 0., 1., -2., 1.], [ 0., 0., 1., -2.]])
如果只需要一個對角線(如
numpy.diag
中),以下方法也適用>>> diags_array([1, 2, 3], offsets=1).toarray() array([[ 0., 1., 0., 0.], [ 0., 0., 2., 0.], [ 0., 0., 0., 3.], [ 0., 0., 0., 0.]])