2016-11-27 198 views
1

我有一個2D numpy數組,我需要在第一列之前添加一列作爲id。在numpy中以二維數組的特定位置插入一列?

我的數組是這樣的:

x = [['8' '4' 'M' '55' '7' 'S' '7' '2'] 
['36' '4' 'F' '58' '1' 'M' '7' '7'] 
['33' '3' 'M' '34' '4' 'M' '2' '3'] 
['43' '1' 'F' '64' '4' 'M' '7' '68'] 
['1' '2' 'M' '87' '4' 'M' '7' '1']] 

,我想添加的列是此y = ['1' '2' '3' '4' '5']

與目標輸出是:

z = [['1' '8' '4' 'M' '55' '7' 'S' '7' '2'] 
['2' '36' '4' 'F' '58' '1' 'M' '7' '7'] 
['3' '33' '3' 'M' '34' '4' 'M' '2' '3'] 
['4' '43' '1' 'F' '64' '4' 'M' '7' '68'] 
['5' '1' '2' 'M' '87' '4' 'M' '7' '1']] 

有什麼辦法,我可以做它? (我能找到一個解決方案,用於插入一排,而不是列)

回答

5

定義新柱:

col = np.array(['1','2','3','4','5']) 
col.shape = (5,1) 

,並在開始時將其插入:

target = np.hstack((col, x)) 

在任何插入給定位置i,你可以這樣做:

target = np.hstack((x[:,:i], col, x[:,i:])) 

但它在我看來就像使用熊貓dataframe,而不是一個numpy數組將是一個更好的選擇...

+0

此外,'''np.concatenate((col,x),axis = 1)''' – wwii

+0

Thanks @ julien Bernu!這是工作! –