Я застрял с проблемой.
Я вызываю функцию самостоятельной сборки в Python. В функции я возвращаю массив. Я мог бы лучше показать код, потому что его трудно объяснить.
Вот код:
x = []
y = []
for seq, target in sequential_data:
x.append(seq)
y.append(target)
return np.array(x), y
Итак, данные x выглядят так:
array([[-6.32800918e-01, 2.89825783e+00, -1.73310681e-01,
-4.15661278e-01, -9.33079353e-02, -4.58912725e-01],
[ 1.07589222e+00, -3.94481134e-01, -1.95411356e+00,
3.33890284e-01, 8.47644383e-01, 3.54376319e+00],
[-2.83976404e-02, -4.19161683e-01, 2.38210386e-01,
-3.94514913e-01, -6.06152332e-01, -9.27321083e-01]]), array([[ 0.09504018, -0.12478065, -0.84749427, -0.41267553, 0.03296391,
-0.31431189],
[ 1.48297783, 0.45790544, 1.72273948, 0.71392208, 0.1164553 ,
1.24876302],
[-1.54352725, 0.06401262, -0.44148997, -0.36444495, 0.2416613 ,
-0.6424675 ],
[ 0.62600517, -0.36715788, 0.09876015, -0.30232469, 0.82585385,
-0.96059436]])
А у выглядит так:
[0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0]
Эти данные возвращаются функцией. Поэтому я пытаюсь назначить имя переменной для массива x и имя переменной для массива y. Я попробовал это так:
validation_x, validation_y = function(Input)
Вход имеет правильное значение, так что это не проблема.
Но когда я делаю len(validation_x)
, он возвращает 0. То же самое для validation_y. Так что я делаю не так?
ПОЛНАЯ ФУНКЦИЯ:
def preprocess_df(df):
for i in df.values:
prev_days.append([n for n in i[:-1]])
if len(prev_days) == SEQ_LEN:
sequential_data.append([np.array(prev_days), i[-1]])
random.shuffle(sequential_data)
buys = []
sells = []
for seq, target in sequential_data:
if target == 0:
sells.append([seq, target])
elif target == 1:
buys.append([seq, target])
random.shuffle(buys)
random.shuffle(sells)
lower = min(len(buys), len(sells))
buys = buys[:lower]
sells = sells[:lower]
sequential_data = buys+sells
random.shuffle(sequential_data)
x = []
y = []
for seq, target in sequential_data:
x.append(seq)
y.append(target)
return np.array(x), y
ПОЛНЫЙ ФУНКЦИОНАЛЬНЫЙ ВЫЗОВ:
times = sorted(main_df.index.values)
last_5pct = times[-int(0.05*len(times))]
validation_main_df = main_df[(main_df.index >= last_5pct)]
main_df = main_df[(main_df.index < last_5pct)]
train_x, train_y = preprocess_df(main_df)
validation_x, validation_y = preprocess_df(validation_main_df)
print("train data: " + str(len(train_x)) + ", validation: " + str(len(validation_x)))
VARIABLE: Validation_main_df
1535824320 7195.99 163110 66.58 1564 297.24 96361 1
1535824380 7197.00 118069 66.71 1924 297.18 125395 0
1535824440 7190.00 189429 66.65 6147 297.13 89798 0
1535824500 7192.20 69587 66.65 9680 297.24 70676 0
1535824560 7193.99 76146 66.59 5012 297.37 44880 0
1535824620 7193.38 59251 66.54 16273 297.37 101982 0
1535824680 7194.00 186177 66.59 4778 297.33 77169 0