如何向数组添加其他行和列?

ric*_*rdo 5 python

我需要在我可以定义的位置向现有的numpy数组添加一列和一行.宽恕我的普通英语.

Ste*_*all 17

我假设您的列和行只是一个列表列表?

也就是说,你有以下几点?

L = [[1,2,3],
     [4,5,6]]
Run Code Online (Sandbox Code Playgroud)

要添加另一行,请使用列表的append方法.

L.append([7,8,9])
Run Code Online (Sandbox Code Playgroud)

L = [[1,2,3],
     [4,5,6],
     [7,8,9]]
Run Code Online (Sandbox Code Playgroud)

要添加另一列,您必须遍历每一行.一个简单的方法是使用列表理解.

L = [x + [0] for x in L]
Run Code Online (Sandbox Code Playgroud)

L = [[1,2,3,0],
     [4,5,6,0]]
Run Code Online (Sandbox Code Playgroud)

  • `np.append` 接受一个 `axis` 参数,指定要附加的维度;因此,不鼓励使用所描述的添加新列的方式,因为它不是 numpy 优化的。 (2认同)

dou*_*oug 6

有很多方法可以在numpy中执行此操作,但并非所有方法都允许您在任何位置将行/列添加到目标数组(例如,append只允许在最后一行/列之后添加).如果你想要一个方法/函数在目标数组中的任何位置追加一行或一列,我会选择' insert ':

T = NP.random.randint(0, 10, 20).reshape(5, 4)
c = NP.random.randint(0, 10, 5)
r = NP.random.randint(0, 10, 4)
# add a column to T, at the front:
NP.insert(T, 0, c, axis=1)
# add a column to T, at the end:
NP.insert(T, 4, c, axis=1)
# add a row to T between the first two rows:
NP.insert(T, 2, r, axis=0)
Run Code Online (Sandbox Code Playgroud)