2017-03-25 131 views
0

我真的需要你的幫助。我一直在試圖轉換它並尋找文檔,但我想我不知道我在找什麼。我如何使用numpy將數組轉換爲數組數組

我輸入的文件有這樣的結構:

20010102,2301,0.95070,0.95070,0.95070,0.95070,4 
20010102,2302,0.95060,0.95060,0.95050,0.95050,4 
20010102,2303,0.95050,0.95070,0.95050,0.95060,4 
20010102,2304,0.95060,0.95060,0.95060,0.95060,4 

這裏是我的代碼:

import numpy as np 
EU = np.loadtxt('data_s.csv', delimiter=',') 
sample = EU[:5] 
size = len(sample) 
print (sample) 

,它的輸出是這樣的:

[[ 2.00101020e+07 2.30100000e+03 9.50700000e-01 9.50700000e-01 
    9.50700000e-01 9.50700000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30200000e+03 9.50600000e-01 9.50600000e-01 
    9.50500000e-01 9.50500000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30300000e+03 9.50500000e-01 9.50700000e-01 
    9.50500000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30400000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30500000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00]] 

所以我試圖重塑它(我相信這不是我應該做的):

sample = sample.reshape(size, 7) 
print(sample) 

和我的輸出是完全一樣的:

[[ 2.00101020e+07 2.30100000e+03 9.50700000e-01 9.50700000e-01 
    9.50700000e-01 9.50700000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30200000e+03 9.50600000e-01 9.50600000e-01 
    9.50500000e-01 9.50500000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30300000e+03 9.50500000e-01 9.50700000e-01 
    9.50500000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30400000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30500000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00]] 

我所尋找的是什麼輸出是這樣的:

[[[2.00101020e+07], [2.30100000e+03], [9.50700000e-01], [9.50700000e-01], 
     [9.50700000e-01], [9.50700000e-01], [4.00000000e+00]], 
...] 

我也試過這樣:

sample = EU[:5] 
final = [] 
for line in sample: 
    va = [] 
    for var in line: 
     var = np.array(var) 
     va.append(var) 
    final.append(va) 
print(final) 

輸出功率爲:

[[array(20010102.0), array(2301.0), array(0.9507), array(0.9507), array(0.9507), array(0.9507), array(4.0)], [array(20010102.0), array(2302.0), array(0.9506), array(0.9506), array(0.9505), array(0.9505), array(4.0)], [array(20010102.0), array(2303.0), array(0.9505), array(0.9507), array(0.9505), array(0.9506), array(4.0)], [array(20010102.0), array(2304.0), array(0.9506), array(0.9506), array(0.9506), array(0.9506), array(4.0)], [array(20010102.0), array(2305.0), array(0.9506), array(0.9506), array(0.9506), array(0.9506), array(4.0)]] 

碰巧是一個列表,而不是一個數組。所以我試過這個:

final = np.array(final) 

這讓我回到了起點。

我在機器學習的項目,應該能夠把這些輸入並在此刻他們看起來都像每一行的工作是輸入,沒有像每個值是一個獨立的變量。

也許我在想這個錯。我嘗試過使用熊貓,但是我意識到使用numpy並且經歷痛苦必須弄清楚這一點,比讓熊貓給我幾千兆字節的數據更好。

這可能是愚蠢的,但請幫助我!我將非常感謝您的幫助!

+0

'樣本[...,無]'或'樣本[...,np.newaxis]'我猜。 – Divakar

+0

'sample'是(5,7)形狀,對嗎?看起來像你想要的(5,7,1)或者也許(35,1) – hpaulj

+0

其實現在我嘗試了(5,7,1),它對我來說效果很好。非常感謝你們! – Awah

回答

0

你試過

sample = sample.reshape(size, 7, 1) 

+0

我沒有,我不知道我可以做到這一點!重塑的文件並沒有完全說明如何完成重塑!十分感謝你的幫助!我只是嘗試過,它的工作! – Awah