2017-05-04 76 views
0

我想創建一個numpy array以便用numpy arrays填充它。例如:創建具有不同形狀的numpy陣列

a = [] (simple array or numpy array) 
b = np.array([[5,3],[7,9],[3,8],[2,1]]) 
a = np.concatenate([a,b]) 
c = np.array([[1,2],[2,9],[3,0]]) 
a = np.concatenate([a,c]) 

我想這樣做,因爲我有我從中提取了一些功能,所以我不能從2個檔,但同時反覆讀取wav文件。 如何創建一個空的ndarray,其第二維度固定a.shape = (x,2)或者我如何連接數組,即使沒有創建「存儲」數組?

+0

'a = np.empty((0,2))'。 – Psidom

+1

試圖逐步調用'concatenate'確實很慢。最好是建立一個數組列表來連接,然後將它們一次全部「連接」起來。 – user2357112

+0

@Psidom謝謝。 – stefos

回答

1

其實有2個選項。 第一個是: a = np.empty((0,2)),它創建一個空的np數組,並且第一維變化。 第二個是創建一個空數組 a = [],將np數組附加到數組中,然後使用np.vstack將它們連接在一起。後者是最有效的選擇。

0

你必須有括號連擊功能:

b = np.array([[5,3],[7,9],[3,8],[2,1]]) 
c = np.array([[1,2],[2,9],[3,0]]) 
a = np.concatenate([b,c]) 

輸出:

[[5 3] 
[7 9] 
[3 8] 
[2 1] 
[1 2] 
[2 9] 
[3 0]]