scipy.sparse.diags¶
- scipy.sparse.diags(diagonals, offsets=0, shape=None, format=None, dtype=None)[源代码]¶
由对角线构造一个稀疏矩阵。
- 参数
- diagonals类数组序列
包含矩阵对角线的数组序列,对应于 offsets 。
- offsets整型或整型序列,可选
- 要设置的对角线:
K=0主对角线(默认)
k>0是第k个上对角线
k<0的第k个下对角线
- shapeint的元组,可选
结果的形状。如果省略,则返回一个足以包含对角线的方阵。
- format{“dia”,“csr”,“csc”,“lil”,.},可选
结果的矩阵格式。默认情况下(FORMAT=NONE)返回适当的稀疏矩阵格式。这一选择可能会发生变化。
- dtype数据类型,可选
矩阵的数据类型。
参见
spdiags
由对角线构造矩阵
注意事项
此函数与
spdiags
它处理非对角线的方式。结果来自
diags
是稀疏等效于::np.diag(diagonals[0], offsets[0]) + ... + np.diag(diagonals[k], offsets[k])
不允许重复对角线偏移。
0.11 新版功能.
示例
>>> from scipy.sparse import diags >>> diagonals = [[1, 2, 3, 4], [1, 2, 3], [1, 2]] >>> diags(diagonals, [0, -1, 2]).toarray() array([[1, 0, 1, 0], [1, 2, 0, 2], [0, 2, 3, 0], [0, 0, 3, 4]])
支持标量广播(但需要指定形状):
>>> diags([1, -2, 1], [-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([1, 2, 3], 1).toarray() array([[ 0., 1., 0., 0.], [ 0., 0., 2., 0.], [ 0., 0., 0., 3.], [ 0., 0., 0., 0.]])