2014-11-25 43 views
0

我正在嘗試爲Python中的預測準備一些時間序列數據(外匯)。計劃是將時間序列轉換爲二維Numpy數組,通過PypeR將其作爲R矩陣傳遞給R,以訓練ANFIS(自適應神經模糊推理系統)進行預測。 (爲什麼我會經歷一個如此複雜的過程純粹是學術問題。)這需要前n列是最後n個數據點,第(n + 1)列是當前/預測值。如何在Python中預處理時間序列數據以進行預測

考慮以下數據點:

Date AUD-USD 
9/1/1999 0.6452 
9/2/1999 0.6466 
9/3/1999 0.6466 
9/4/1999 0.6466 
9/5/1999 0.6459 
9/6/1999 0.6494 
9/7/1999 0.6479 
9/8/1999 0.653 
9/9/1999 0.6512 

爲了簡單起見,讓我們說,前五次點將被用作輸入來預測下一個數據點。然後,該陣列應該如下所示:

  t - 5 t - 4 t - 3 t - 2 t - 1 t 
9/6/1999 0.6452 0.6466 0.6466 0.6466 0.6459 0.6494 
9/7/1999 0.6466 0.6466 0.6466 0.6459 0.6494 0.6479 
9/8/1999 0.6466 0.6466 0.6459 0.6494 0.6479 0.653 
9/9/1999 0.6466 0.6459 0.6494 0.6479 0.653 0.6512 

減去日期(只是爲了清楚起見)。

現在的問題是:是否有一個現有的Python函數或庫,將實現預期的結果?或者最好是通過一系列循環手動完成?另外,這個過程叫做什麼?我似乎無法爲Google提供解決方案,所以也許我只是不知道用什麼字來稱呼它。

回答

0

您可以在一行中輕鬆構建移位數組。在這裏,我使用整數範圍來幫助您瞭解發生了什麼 - 只需將A替換爲您的數據即可。

import numpy as np 

A = np.arange(10) 
cut = 6 
B = np.array([A[k-cut:k] for k in xrange(cut,A.size)]) 
print B 

,並提供:

[[0 1 2 3 4 5] 
[1 2 3 4 5 6] 
[2 3 4 5 6 7] 
[3 4 5 6 7 8]] 

爲了解析這些日期,儘量尋找大熊貓,這是尤其是當日期都參與了數據處理的很好的書房。

+0

太棒了!所以,這看起來像是我對列表的理解。是嗎?我沒有想過如此使用它,作爲Python和所有的新手。 – 2014-11-25 15:40:55

+0

就是這樣,連同一些切片和轉換成一個numpy數組。 – Hooked 2014-11-25 15:41:52

相關問題