2016-05-28 1 views
2

間のすべての日付のインデックスを見つける:しかしPythonの私は日付の<code>numpy.where</code>と同等のものを実装しようとしている二つの日付

from datetime import date, timedelta as td, datetime 
d1 = datetime.strptime('1/1/1995', "%m/%d/%Y") 
d2 = datetime.strptime('12/31/2015', "%m/%d/%Y") 

AllDays = [] 
while(d1<=d2): 
    AllDays.append(d1) 
    d1 = d1 + td(days=1) 

validDate = AllDays 
trainStDt = '1/1/1995' 
trainEnDt = '12/31/2013' 
testStDt = '1/1/2014' 
testEnDt = '12/31/2015' 

indTrain = (validDate >= datetime.strptime(trainStDt,'%m/%d/%Y')) & (validDate <= 
                      datetime.strptime(trainEnDt,'%m/%d/%Y')) 
indTest = (validDate >= datetime.strptime(testStDt,'%m/%d/%Y')) & (validDate <= 
                      datetime.strptime(testEnDt,'%m/%d/%Y')) 
trainDates = validDate[indTrain] 
testDates = validDate[indTest] 

print trainDates[0] 
print trainDates[-1:] 
print testDates[0] 
print testDates[-1:] 

:リストを比較しようとしているよう は、(1)indTrainは動作しません。 to datetime (2)私の解決策は、validDatesの各要素をループすることです

もっと良い方法がありますか?

答えて

1

リストを配列に変換するだけです。スクリプトの先頭にimport numpy as npを追加し、whileループの後に次のように追加します。

AllDays = np.array(AllDays) 
関連する問題