在numpy中创建双行对角矩阵

时间:2019-01-31 08:01:11

标签: python numpy diagonal

我正在尝试制作一个特殊的对角矩阵,如下所示:

[[1,1,0,0,0,0],
 [0,0,1,1,0,0],
 [0,0,0,0,1,1]]

它与这里的问题略有不同:Make special diagonal matrix in Numpy

我尝试调整解决方案,但无法完全解决。 感谢有关如何有效实现此目标的建议。

1 个答案:

答案 0 :(得分:0)

不像注释中那样优雅,但:

a=4 # number of rows
b=a*2 #number of columns
np.array((([1]*2+[0]*b)*a)[:-b]).reshape(a,b)
array([[1, 1, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 0, 0, 0, 0],
       [0, 0, 0, 0, 1, 1, 0, 0],
       [0, 0, 0, 0, 0, 0, 1, 1]])

适用于任何a