在Python中创建2D矩阵列表

时间:2017-04-13 01:11:03

标签: python python-3.x numpy for-loop matrix

我正在尝试创建一个2d矩阵列表,如下图所示:

list of 2d matrices

基本上,我想从一个带有全零的NxN矩阵开始,然后依次将0替换为1(如图所示)。每次修改都会将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'更改了矩阵大小。我似乎无法弄清楚这一点。我对此表示感谢。

1 个答案:

答案 0 :(得分:0)

这将完成这项工作:

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)