В настоящее время я работаю с данными временных рядов и пытался использовать np.array_split
для разделения моих данных на пакеты.
Чтобы дать немного больше деталей, у меня изначально был DataFrame, который имеет размер (32000, 149)
. Я обработал эти данные, чтобы создать над ними скользящее окно размером (100, 40)
и использовать его в режиме авторегрессии. Каждый «мини-пакет» имеет 32 экземпляра, каждый из которых имеет размер (100, 40)
, что приводит меня к 1000 таких так называемых мини-пакетов.
Что я хочу сделать, так это разделить эти 1000 пакетов на «числодней, «что в данном случае будет 10, что означает, что каждая отдельная« дневная партия »будет содержать 100 мини-пакетов соответственно.
У меня следующий код:
data = {}
batches = []
minibatches = []
count = 1
for idx, _ in df.iterrows():
minibatches.append(df.iloc[idx:(idx + 100), 0:40])
if count == 32:
batches.append(minibatches)
minibatches = []
count = 0
count += 1
num_days = len(batches) // 100 # 1000 // 100 = 10
batch_split = np.array_split(batches, num_days)
for day in range(num_days):
data[fold][day] = batch_split[day] # Nevermind the "fold" variable here.
Ошибка, которую я получаю для строки np.array_split
:
ValueError: cannot copy sequence with size 100 to array axis with dimension 40
Если бы я сломал переменную batches
, это просто список, содержащий 1000 списков. Эти 1000 списков являются вышеупомянутыми мини-пакетами, а также списками, содержащими 32 кадра данных каждый. Каждый DataFrame из 32 DataFrames имеет размер (100, 40)
.
. Я не понимаю, откуда взялись size 100
и dimension 40
в этой настройке. Я не обращаюсь к значениям DataFrame, а просто хочу разделить список batches
.