Чтобы реализовать метод DataSet
класса __get_item__()
pytorch, требуется поддержка индексации, чтобы dataset[i]
можно было использовать для получения ith
образца.
Скажем, у меня есть временной ряд ser
:
2017-12-29 14:44:00 69.90
2017-12-29 14:45:00 69.91
2017-12-29 14:46:00 69.87
2017-12-29 14:47:00 69.85
2017-12-29 14:48:00 69.86
2017-12-29 14:49:00 69.92
2017-12-29 14:50:00 69.90
2017-12-29 14:51:00 70.00
2017-12-29 14:52:00 69.97
2017-12-29 14:53:00 69.99
2017-12-29 14:54:00 69.99
2017-12-29 14:55:00 69.85
Так как мне нужно индексировать в скользящее окно. Я генерирую временной ряд длины окна 3
, используя:
l3_list = list()
def t(x):
l3_list.append(x.copy())
ser.rolling(3).apply(t)
l3_list
становится:
[array([69.9 , 69.91, 69.87]),
array([69.91, 69.87, 69.85]),
array([69.87, 69.85, 69.86]),
array([69.85, 69.86, 69.92]),
array([69.86, 69.92, 69.9 ]),
array([69.92, 69.9 , 70. ]),
array([69.9 , 70. , 69.97]),
array([70. , 69.97, 69.99]),
array([69.97, 69.99, 69.99]),
array([69.99, 69.99, 69.85])]
Чтобы я мог индексировать в l3_list. А именно l3_list[i]
- это скользящее окно ith
. Есть ли более эффективный способ сделать это?
return ser[i:i+3].copy()
в__getitem__
? (почемуcopy
см. этот ответ) - person Jatentaki   schedule 15.12.2018