Я работаю с кератами и всегда есть списки, поэтому я думаю, что всегда все должно быть преобразовано в массив numpy, что для меня очень нелогично. Я предполагаю, что это связано с производительностью? Я не вижу другой причины? Однако моя проблема выглядит так, как показано ниже. Я должен преобразовать эту часть кода:
output_sentence = []
final_output_sentence = []
for key in row['o'].lower():
temp_list = []
if key in dictionary.keys():
temp_list.append(dictionary[key])
output_sentence.append(temp_list)
else:
dictionary[key] = len(dictionary)
temp_list.append(dictionary[key])
output_sentence.append(temp_list)
final_output_sentence.append(output_sentence)
к коду на основе массивов Я пытаюсь таким образом:
output_sentence = np.array([], dtype=int)
final_output_sentence = np.array([], dtype=int)
for key in row['o'].lower():
temp_list = np.array([], dtype=int)
if key in dictionary.keys():
temp_list = np.append(temp_list, dictionary[key])
output_sentence = np.append(output_sentence, temp_list)
else:
dictionary[key] = len(dictionary)
temp_list = np.append(temp_list, dictionary[key])
output_sentence = np.append(output_sentence, temp_list)
final_output_sentence = np.append(final_output_sentence, output_sentence)
однако вместо этого [[[1], [2], [3], [2], [4]]]
я получаю это [1 2 3 2 4]
. Есть идеи как это решить?
UPDATE
Что вы думаете о решении, показанном ниже? Любые советы по оптимизации производительности?
output_sentence = []
for key in row['o'].lower():
temp_list = []
if key in dictionary.keys():
temp_list.append(dictionary[key])
output_sentence.append(temp_list)
else:
dictionary[key] = len(dictionary)
temp_list.append(dictionary[key])
output_sentence.append(temp_list)
final_output_sentence = np.array(output_sentence)
final_output_sentence = final_output_sentence.reshape(1, final_output_sentence.shape[0], 1)