在Python中创建2D矩阵列表

在Python中创建2D矩阵列表,python,python-3.x,numpy,for-loop,matrix,Python,Python 3.x,Numpy,For Loop,Matrix,我正在尝试创建二维矩阵列表,如下图所示: 基本上,我想从一个全为零的NxN矩阵开始,然后依次用1替换0(如图所示)。随着每次修改将0更改为1,我希望在该步骤中输出矩阵,并将其保存在列表或数组中 对于图中的第一行矩阵,我有: dim = 4 x=[] for i in range(0,dim): matrix = np.zeros((dim,dim)) matrix[0,i] = 1 x.append(matrix)

我正在尝试创建二维矩阵列表,如下图所示:

基本上,我想从一个全为零的NxN矩阵开始,然后依次用1替换0(如图所示)。随着每次修改将0更改为1,我希望在该步骤中输出矩阵,并将其保存在列表或数组中

对于图中的第一行矩阵,我有:

    dim = 4
    x=[]
    for i in range(0,dim):
        matrix = np.zeros((dim,dim))
        matrix[0,i] = 1
        x.append(matrix)
    m0 = x[0]
    m1 = x[0]+x[1]
    m2 = x[0]+x[1]+x[2]
    m3 = x[0]+x[1]+x[2]+x[3]
我想概括一下,这样我不仅可以得到第一行,还可以得到图像中显示的其余行,并通过“dim”更改矩阵大小。我似乎无法理解这一点。非常感谢您的帮助。

这将完成以下工作:

import numpy as np
dim = 4
x=[]
for i in range(dim):
    lst=[]
    matrix=np.zeros((dim,dim))
    vec=np.ones(i+1)
    for j in range(dim):
        matrix[0:i+1,j]=vec
        lst.append(np.copy(matrix))
    x.append(lst)
print(x)

谢谢,这帮了大忙。