2017-08-30 36 views
1

一個一維數組插入值的2名維數組比方說,我們有兩個數組如何使用numpy的

a = [1, 2] 

b = [ [A, B, C], [D, E, F] ] 

我想通過梳理& b

使c = [ [1,A, B, C], [2, D, E, F] ]如何做到這一點?

a和b的一級兒童數量相同。

回答

3

您需要reshapea所以就變成了2×1陣列,那麼你可以使用hstack以水平堆疊陣列:

In[13]: 
np.hstack([a.reshape((2,1)), b]) 

Out[13]: 
array([['1', 'A', 'B', 'C'], 
     ['2', 'D', 'E', 'F']], 
     dtype='<U11') 

由於由numpy master @Divakar建議,如果您切片數組並將None作爲其中一個軸,則可以引入或重新整形陣列,而不需要reshape

In[14]: 
np.hstack([a[:,None], b]) 

Out[14]: 
array([['1', 'A', 'B', 'C'], 
     ['2', 'D', 'E', 'F']], 
     dtype='<U11') 

它在docs解釋,尋找newaxis例如

+1

爲了使它通用:'一[:,無]'。 – Divakar

+0

@Divakar這是真的,將更新,謝謝 – EdChum

+0

或'a.reshape(-1,1)',如果你覺得'重塑'更清晰 –

0

你可以使用zip和列表理解:

a = [1, 2] 
b = [['a', 'b', 'c'], ['d', 'e', 'f']] 
c = [[e] + l for e, l in zip(a, b)] 
print(c) #=> [[1, 'a', 'b', 'c'], [2, 'd', 'e', 'f']]