2010-01-04 66 views
6

我需要添加一列和一行到一個現有的numpy數組,在我定義的位置。原諒我的普通英語。如何添加一個額外的行和列到數組中?

+2

這需要多一點的信息 – 2010-01-04 21:41:10

+1

什麼樣的陣列?列表列表,array.array或numpy.array? – 2010-01-04 21:42:04

+2

-1:沒有代碼.... – 2010-01-04 21:42:51

回答

18

我假設你的列和行只是列表的列表?

也就是說,你有以下幾點?

L = [[1,2,3], 
    [4,5,6]] 

要添加另一行,請使用列表的append方法。

L.append([7,8,9]) 

L = [[1,2,3], 
    [4,5,6], 
    [7,8,9]] 

要添加其他列,你將不得不遍歷每個行。一個簡單的方法就是使用列表理解。

L = [x + [0] for x in L] 

L = [[1,2,3,0], 
    [4,5,6,0]] 
+0

並將其轉換爲數組只是做數組(1st)? – 2010-01-04 21:45:02

+1

這應該工作。用numpy可能有更好的方法,但你原來的問題沒有指定這樣的。 – 2010-01-04 21:48:58

+0

感謝您的回答 – ricardo 2010-01-04 21:49:41

6

有很多方法在numpy的做到這一點,但不是所有的人,讓你的行/列在添加到目標陣列的任何位置(例如,追加只允許在最後一行/列之後添加)。如果你想有一個單一的方法/函數在目標陣列中的任何位置添加任何行或列,我會去的「插入」:

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)