ValueError: не удалось передать входной массив из формы (28,29) в форму (28) - PullRequest
0 голосов
/ 10 марта 2019

У меня есть такой фрейм данных, как

User_id  trip_id  segmentid  velocity      Transportation_Mode
10         1          1      26.89540395        bus
10         3          1      28.27382321        bus
10         3          2      3.580025333        walk
11         4          1      3.056558794        walk
11         4          2      5.74621102         bus
11         4          3      1.26180075         walk
11         7          1      31.75670826        car
11         7          2      8.572398839        bus
11        10          1      6.314346629        car
11        10          2      12.86523982        bus

Необходимость создания двух пустых массивов X. Существует несколько последовательностей, сгруппированных по (user_id, trip_id), где каждая группа представляет собой одну последовательность.Для LSTM все последовательности должны иметь фиксированную длину, поэтому мне нужно добавить 0 ко всем группам, чтобы все группы имели одинаковую длину.Для этой цели я получил максимальную длину группы в переменной mx, используя приведенный ниже код.

dataset['Transportation_Mode'].astype('category')
dataset['Transportation_Mode'] = dataset['Transportation_Mode'].cat.codes
gb = dataset.groupby(['userid','trip_id']) # Create Groupby object
mx = gb['trip_id'].size().max() # Find the largest group
print ('mx=',mx)

mx - максимальная длина группы, так что все остальные последовательности дополняются 0, чтобы иметь равную длину,

3D-массив X создан с использованием приведенного ниже кода.

X = np.array([np.pad(frame[['segmentid','velocity_mean']].values,
                     pad_width=(0,mx-len(frame)),
                     mode='constant',
                     constant_values=0) 
                     for _,frame in gb]).reshape(-1,mx,1)

код работает для одной переменной, но не для 2 переменных, и я получаю ошибку значения

ValueError: не удалось преобразовать входной массив из формы (28,29) в форму (28)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...