Python numpy中的超对角非方矩阵?
使用numpy,我想创建一个几乎是正方形的超对角矩阵。它在正方形部分的右侧或左侧有额外的零。下面的代码片段给出了我想要的结果,但阅读起来有点棘手,而且矩阵类型在我看来非常常见,应该有一种惯用的方法来构造它 在numpy中,构建如下“填充眼睛”的最简单方法是什么Python numpy中的超对角非方矩阵?,python,numpy,matrix,Python,Numpy,Matrix,使用numpy,我想创建一个几乎是正方形的超对角矩阵。它在正方形部分的右侧或左侧有额外的零。下面的代码片段给出了我想要的结果,但阅读起来有点棘手,而且矩阵类型在我看来非常常见,应该有一种惯用的方法来构造它 在numpy中,构建如下“填充眼睛”的最简单方法是什么 将numpy导入为np 尺寸=5 焊盘宽度=3 左加垫眼=np.块([np.零((尺寸,垫宽)),np.眼(尺寸)]) 右加垫眼=np.块([np.眼(尺寸),np.零((尺寸,垫宽))) np.eye可以直接做到这一点 >>
将numpy导入为np
尺寸=5
焊盘宽度=3
左加垫眼=np.块([np.零((尺寸,垫宽)),np.眼(尺寸)])
右加垫眼=np.块([np.眼(尺寸),np.零((尺寸,垫宽)))
np.eye
可以直接做到这一点
>>> np.eye(size, size+pad_width, pad_width)
array([[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 1.]])
>>> np.eye(size, size+pad_width)
array([[1., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.]])