我有一個3D(時間,X,Y)numpy數組,包含6個小時時間系列幾年。 (說5)。我想創建一個採樣時間序列,其中包含從可用記錄中隨機抽取的每個日曆日的1個實例(每天5種可能性),如下所示。什麼是對numpy數組進行取樣的最快方法?
- 1月1:2006年
- 1月2日:2011
- 年1月3日期:2009年
- ...
,這意味着我需要從01/01/2006取4個值從02/01/2011等 4個值我有一個其工作方式工作版本如下:
- 重塑輸入數組以添加「年」維(時間,年,X,Y)
- 在0和4之間創建隨機生成整數的365值數組
- 使用np.repeat和整數數組只有相關的值:
例子:
sampledValues = Variable[np.arange(numberOfDays * ValuesPerDays), sampledYears.repeat(ValuesPerDays),:,:]
這似乎是工作,但我想知道如果這是解決我的問題的最佳/最快的方法?速度非常重要,因爲我正在循環做這件事,adn會受益於儘可能多的測試。
我正在做這個對嗎?
感謝
編輯 我忘了提,我過濾輸入數據集刪除月29日閏年。
基本上,該操作的目的是找到一個365天的樣本,可以很好地匹配長期時間序列的平均值等。如果採樣的時間序列通過了我的質量測試,我想導出並重新開始。
這看起來很有前途! – heltonbiker
我應該提到它,但在這種情況下我並不在意閏年,因爲我已經在輸入時間序列中刪除了所有2月29日的事件。我雖然使用scikits.timeseries,但是我不確定我是否真的會從速度上受益。另外,我可能想在6:00或12:00開始我的日子,所以我不想創建一個datetime對象數組來提取每次我只能使用我的採樣數組(rs = np .random.randint(0,np.size(年),size = 365))。但我可能錯了! – Jahfet