#python #pandas #numpy #dictionary
#python #pandas #numpy #словарь
Вопрос:
Я пытаюсь реорганизовать некоторый код, чтобы в нем не было так много повторений. То, что я пытаюсь сделать, это создать входные данные для многоканальной / входной нейронной сети. Рассматриваемые функции полностью получены из двух разных источников, и здесь inputA представляет собой 2D-массив и должен храниться в этом формате.
У меня есть следующий код:
'Create Input Values'
inputA= word_embeddings.numpy()
inputB = df['Features'].values
y = df['Target'].values
full_model_inputs = [inputA, inputB]
#Create Dictionary
original_model_inputs = dict(inputA= inputA, inputB= inputB)
'Create Train and Validation Data from Inputs'
#Preserve data dimensionality for data split
df = pd.DataFrame({"inputA":original_model_inputs["inputA"],
"inputB":list(original_model_inputs["inputB"])})
#Data Split
x_train, x_valid, y_train, y_valid = train_test_split(df, y, test_size = 0.25)
#Convert back to original format
x_train = x_train.to_dict("list")
x_valid = x_valid.to_dict("list")
#Format dictionary items as arrays to be functional for model
x_train = {k:np.array(v) for k,v in x_train.items()}
x_valid = {k:np.array(v) for k,v in x_valid.items()}
Есть ли какие-либо предложения по улучшению этого кода? Просто хочу получить информацию от сообщества.
как выглядит словарь:
{'inputA': array([40., 68., 46., ..., 60., 42., 50.]),
'inputB': array([[-1.915694 , -2.39863253, -1.75456583, ..., 2.11158562,
2.42145038, 1.0996474 ],
[-1.99583805, -2.38059568, -1.94454968, ..., 2.14585209,
2.56227231, 1.2808286 ],
[-2.1607585 , -2.29914975, -1.85722673, ..., 2.04741383,
2.34712863, 1.77104282],
...,
[-2.1576829 , -2.28505015, -1.71492636, ..., 2.05909061,
2.43704724, 1.90647388],
[-1.81904769, -2.74457788, -2.15936947, ..., 2.31333733,
2.50243115, 1.75907826],
[-2.01300311, -2.32310271, -2.00470185, ..., 2.09641671,
2.53372359, 1.22000134]])}
Комментарии:
1. Это может лучше подходить для CodeReview. Хотя SO любит решать «numpy векторизацию» и связанные с ней проблемы оптимизации, рефакторинг и общая организация ccde не подходят SO. Но сначала потратьте некоторое время на изучение требований к CR и типичных ответов. Они более требовательны к завершенности и работоспособности кода.
2. Спасибо! Не знал об этом 🙂 Я ценю это!