У меня есть ряд последовательностей, сохраненных в 2D-массиве [[first_seq,first_seq],[first_seq,first_seq],[sec_seq,sec_seq]],..
.
Каждая последовательность векторов отличается по длине. Некоторые имеют длину 55 строк, другие - 68 строк.
2D-массив последовательности (features
) имеет форму (427,227)
(, особенности ) и у меня есть еще один 1D-массив (num_seq
) (5,)
, который содержит длину каждой последовательности [55,68,200,42,62]
(например, первая последовательность равна 55 строкам, вторая последовательность равна 68 строкам и c.). len(1D-array) = number of seq
Теперь мне нужно, чтобы каждая последовательность была одинаково длинной, а именно каждая последовательность должна быть 200. Поскольку в этом примере у меня 5 последовательностей, результирующий массив должен быть structured_seq = np.zeros(5,200,227)
Если последовательность короче, чем 200, все остальные значения этой последовательности должны быть равны нулю.
Поэтому я попытался заполнить structured_seq
, выполнив что-то вроде:
for counter, sent in enumerate(num_seq):
for j, feat in enumerate(features):
if num_sent[counter] < 200:
structured_seq[counter,feat,]
, но я застрял ..
Если быть точным: первая последовательность - это первые 55 строк двумерного массива (features
), все повторяющиеся 145 должны быть заполнены нулями. И так далее ..