2016-11-13 53 views
0

我目前正在努力將一些數據解析爲訓練框架。如何輕鬆將numpy.ndarray轉換爲numpy.array列表?

問題是框架無法處理ndarray。我需要轉換成數組列表。輸入和輸出數據當前存儲爲numpy.ndarray的兩個單獨列表。

  1. 必須將輸入數據轉換爲numpy數組列表,其中每個數組包含ndarray列。

  2. 輸出數據必須被轉換成numpy的陣列的列表,其中每個陣列包含ndarray的行?..

是否有可能將其轉換爲這個?

當我打印train_output_data [0] I得到這樣的:

https://ufile.io/fa816

+2

正如您以前的['Q&A'](http://stackoverflow.com/questions/40566500/access-columns-and-rows-of-numpy-ndarray)中所列,使用'list(a)'和'名單(AT)'? – Divakar

+0

我不確定我瞭解轉置如何幫助您? –

+2

轉置帶來第二個軸,沿着它我們有列作爲第一個軸,因此當*放*到'列表()'會創建列的列。爲什麼不嘗試一下?如果它沒有解決它,怎麼樣放置一個樣本數組和期望的數組列表? – Divakar

回答

1

假設ipop是輸入列表和分別輸出列表,

newInput = [ip[:,i] for i in range(ip.shape[0])] 
newOutput = [x for x in op] 

如果train_output_datatrain_input_data是2D numpy.ndarray的列表,那麼替代可以是

newInput = [] 
for ip in train_input_data: 
    newInput.append([ip[:,i] for i in range(ip.shape[0])]) 

newOutput = [] 
for op in train_output_data: 
    newOutput.append([x for x in op]) 
+0

我想你必須添加一個外部的for-loop來使它運行多個ndarrays列表。 –

+0

@CarltonBanks:你聲明*輸入和輸出數據當前是作爲numpy.ndarray的兩個單獨列表存儲的*如果只有兩個列表,每個列表對應一個輸入和輸出,那麼上面兩行就足夠了。 –

+0

哦...是的,但不能調用ip.shape [0]。作爲ndarrays被追加到列表中的 。你可以調用ip.shape [0] .shape [0] .. 但是這隻會對那一個實例有效? –

相關問題