Я работаю над моделью ML, предварительно обрабатывая данные, используя горячее кодирование для категориальных значений. У меня 300 000 строк примерно так:
['1901', array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.]), array([0., 0., 0., ..., 0., 0., 0.]), '69.55', '9', '95.95', array([1.]), '8', '2000', array([0., 1., 0.]), array([1.]), array([0., 1.]), array([0., 1., 0., 0., 0., 0., 0., 0., 0., 0.]), '11.75', '7.0', '9.6791', '121', array([0., 1.]), array([0., 1., 0., 0.]), '0'], ['8451958', array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.]), array([0., 0., 0., ..., 0., 0., 0.]), '99.55', '3', '2098.65', array([1.]), '8', '18', array([0., 1., 0.]), array([1.]), array([0., 1.]), array([0., 0., 1., 0., 0., 0., 0., 0., 0., 0.]), '13.24', '24.0', '7.81', '22033', array([0., 1.]), array([0., 0., 1., 0.]), '0']
где массивы представляют собой горячее кодирование категориальных значений.
Чтобы обучить мою модель, я должен расширить массивы внутри следующим кодом:
new_label_x = []
for j in range(len(label_x)):
new_line = []
for i in range(len(label_x[j])):
if type(label_x[j][i]) is numpy.ndarray:
for k in label_x[j][i]:
new_line.append(float(k))
else:
new_line.append(float(label_x[j][i]))
new_label_x.append(new_line)
Тем не менее, я получаю ошибку памяти, вероятно, из-за того, что в одном из моих numpy.ndarray есть 5000 элементов, а мой new_label_x становится слишком большим (длина = 5249). Как лучше всего подойти к этому?