Конкатенация массива с новым массивом, созданным в для цикла python - PullRequest
2 голосов
/ 16 мая 2019

У меня есть следующий тип данных, я делаю прогнозы:

Input: 1 | 2 | 3 | 4 | 5
       1 | 2 | 3 | 4 | 5
       1 | 2 | 3 | 4 | 5

Output: 6
        7
        8

Я хочу предсказать по одному и передать его обратно на вход в качестве значения для последнего столбца. Я использую эту функцию, но она плохо работает:

def moving_window(num_future_pred):
    preds_moving = []
    moving_test_window = [test_X[0,:].tolist()]
    moving_test_window = np.array(moving_test_window)
    for j in range(1, len(test_Y)):
        moving_test_window = [test_X[j,:].tolist()]
        moving_test_window = np.array(moving_test_window)
        pred_one_step = model.predict(moving_test_window[:,:,:])
        preds_moving.append(pred_one_step[0,0])
        pred_one_step = pred_one_step.reshape((1,1,1))
        moving_test_window = 
        np.concatenate((moving_test_window[:,:4,:], pred_one_step), axis= 1)
    return preds_moving

preds_moving = moving_window(len(test_Y))

Что я хочу:

Input: 1 | 2 | 3 | 4 | 5
       1 | 2 | 3 | 4 | 6
       1 | 2 | 3 | 4 | 17

Output: 6
        17
        18

В основном, чтобы сделать первый прогноз [1,2,3,4,5] --> 6, а затем удалить последний столбец [5] из следующих входных данных и добавлять прогнозируемое значение каждый раз.

Что он делает сейчас, он просто принимает все входные данные такими, какие они есть, и делает прогнозы для каждой строки. Любая идея приветствуется!

...