2016-11-27 10 views
1

私は2D numpy配列を持っています。最初の列の前に1つの列をidとして追加する必要があります。2D配列の特定の位置に列を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:])) 

しかし、それは使用してのように私には見えますpandasデータフレームではなく、numpy配列がより良いオプションになります...

+0

また、 '' 'np.concatenate((col、x)、axis = 1)' '' – wwii

+0

@julien Bernu!それは働いている! –

関連する問題