2013-08-20 328 views
0

在我的Python程序中,我連接了幾個整數和一個數組。這將是直觀的,如果這會工作:Numpy數組:連接數組和整數

x,y,z = 1,2,np.array([3,3,3]) 
np.concatenate((x,y,z)) 

然而,代替所有整數必須轉換到np.arrays:

x,y,z = 1,2,np.array([3,3,3]) 
np.concatenate((np.array([x]),np.array([y]),z)) 

特別是如果你有許多變量本手冊將是乏味的。問題是x和y是0維數組,而z是1維的。有什麼辦法可以在沒有轉換的情況下進行連接嗎?

回答

3

他們只是要序列對象,不一定numpy的數組:

x,y,z = 1,2,np.array([3,3,3]) 
np.concatenate(([x],[y],z)) 
# array([1, 2, 3, 4, 5]) 

numpy的也確實有一個insert功能,將做到這一點:

x,y,z = 1,2,np.array([3,3,3]) 
np.insert(z, [0,0], [x, y]) 

我會補充說,如果你只是試圖將整數添加到列表中,您不需要numpy:

x,y,z = 1,2,[3,3,3] 
z = [x] + [y] + z 

x,y,z = 1,2,[3,3,3] 
[x, y] + z 

x,y,z = 1,2,[3,3,3] 
z.insert(0, y) 
z.insert(0, x) 
+0

嘿,這讓我感覺有點愚蠢:)。謝謝你的幫助。現在我也明白,int/float和列表,元組等的序列類型是有區別的。 – Forzaa