2013-04-22 2 views
0

У меня есть матрица строк. Как добавить столбец к фронту, какКак добавить столбец строк в матрицу строк numpy?

[['a','b'], ==> [['e','a','b'], 
['c','d'],   ['e','c','d'], 
['a','b'], ==> ['e','a','b'], 
['c','d'],   ['e','c','d'], 
['a','b'], ==> ['e','a','b'], 
['c','d']]   ['e','c','d']] 
+1

же, как и любой другой массив: http://stackoverflow.com/questions/5064822/numpy-how-to-add-items-into-an-array/5068182#5068182 – Paul

+0

@Paul как Я инициализирую колонку строк? 'e's – siamii

+0

np.array ([['a', 'b'], ['a', 'b']], dtype = str) – Paul

ответ

1

The answer in @Paul's comments объясняет все. Добавление сюда для полноты.

In [1]: a = np.tile(np.array([["a","b"], ["c","d"]]), (3,1)) 

In [2]: a 
Out[2]: array([['a', 'b'], 
     ['c', 'd'], 
     ['a', 'b'], 
     ['c', 'd'], 
     ['a', 'b'], 
     ['c', 'd']], 
     dtype='<U1') 

In [3]: e = np.tile("e", a.shape[0])[None].T # REF: https://stackoverflow.com/a/11885718/155813 

In [4]: e 
Out[4]: array([['e'], 
     ['e'], 
     ['e'], 
     ['e'], 
     ['e'], 
     ['e']], 
     dtype='<U1') 

In [5]: np.hstack([e, a]) 
Out[5]: array([['e', 'a', 'b'], 
     ['e', 'c', 'd'], 
     ['e', 'a', 'b'], 
     ['e', 'c', 'd'], 
     ['e', 'a', 'b'], 
     ['e', 'c', 'd']], 
     dtype='<U1') 
Смежные вопросы