當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy sparse.diags_array用法及代碼示例


本文簡要介紹 python 語言中 scipy.sparse.diags_array 的用法。

用法:

scipy.sparse.diags_array(diagonals, /, *, offsets=0, shape=None, format=None, dtype=None)#

從對角線構造一個稀疏數組。

參數

diagonals 數組 序列

包含數組對角線的數組序列,對應於偏移量。

offsets int 或 int 序列,可選
要設置的對角線:
  • k = 0 主對角線(默認)

  • k > 0 第 k 個上對角線

  • k < 0 第 k 個下對角線

shape int 元組,可選

結果的形狀。如果省略,則返回一個足夠大以包含對角線的方陣。

format {“dia”, “csr”, “csc”, “lil”, ...},可選

結果的矩陣格式。默認情況下(format=None)返回適當的稀疏數組格式。此選擇可能會發生變化。

dtype dtype,可選

數組的數據類型。

注意

diags_array 的結果是稀疏等價的:

np.diag(diagonals[0], offsets[0])
+ ...
+ np.diag(diagonals[k], offsets[k])

不允許重複的對角線偏移。

例子

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

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.sparse.diags_array。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。