当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。