在矩阵python中追加值

时间:2018-10-15 21:55:18

标签: python-3.x matrix append

我正在尝试填充i x j矩阵的值,其中每个单元格必须具有为其分配的值[,]。

我尝试了很多事情。例如,我尝试过的第一个单元格

F[0][0]=[None,0]

F[0][0].append=[None,0]

F[0][0].append(None,0)

但是单元格仍然是[]。我以为我一定是在犯一个愚蠢的错误,但是请您帮忙

2 个答案:

答案 0 :(得分:0)

是否有任何理由不在您的代码中使用numpy.array?您可以像这样初始化(i,j)矩阵(例如,假设i = 2和j = 3):

import numpy as np
F = np.zeros((2,3)) # initializes the matrix (fill it with 0)

然后,如果您想填充其第一行(例如,有意义的python索引从0开始):

F[0,:] = [2,None,6]
>> array([[ 2., nan,  6.],
   [ 0.,  0.,  0.]])

对于速度来说,正确初始化矩阵总是更好的方法,但是如果您需要添加一行,还可以使用numpy.append方法(numpy.append):

np.append(F,[[5,-1,3]],axis=0) # axis=0 specifies that you want to add a row
>> array([[ 2., nan,  6.],
   [ 0.,  0.,  0.],
   [ 5., -1.,  3.]])

对于向量和矩阵,numpy比嵌入列表要方便得多。

答案 1 :(得分:0)

如果您真的想使用初始化的嵌入列表,我想您可以使用此方法:

F = [[None]*3]*2 # initializes your 2 lines and 3 colomns list, if needed
>> [[None, None, None], [None, None, None]]

F[1] = [0,None,2,3] # fills your second line (embeded list 1)
>> [[None, None, None], [0, None, 2, 3]]

F[0] = [5] # erases and changes your first line (embeded list 0)
>> [[5], [0, None, 2, 3]]

F.append([1,-1,None]) # adds a new list (which will be the embeded list 2)
>> [[5], [0, None, 2, 3], [1, -1, None]]

鉴于您的帖子,它似乎涵盖了您要实现的目标。请注意,如果您主要通过F=[[]]定义列表,那么您将只能访问F[0],并且要添加另一个嵌入列表,则需要使用list.append。