Справочная информация:
Не уверен, что у меня есть вся моя терминология, поэтому прошу прощения, если это дублирующий вопрос (аналогичный вопрос 1 , аналогичный вопрос 2) . Я читал этот урок Как перебирать словарь в Python, и я думаю, что я хочу сделать что-то вроде «Выполнение некоторых вычислений: пересмотр», но в форме «распаковка кортежа» (слова, использованные в 3-ей ссылке).
Задача / цель:
Я надеялся создать новый словарь с оригинальным ключом , новое значение, которое является средним из списка старого значения и построить его.
Моя попытка:
Ниже приведена полная попытка как для l oop, а также моя попытка сделать "один лайнер". Самое близкое, что я получил, это формирование двух разных переменных, которые принимают ключи словарей, и еще одну переменную, которая принимает значения и отображает их как (x, y).
k_to_accuracies = {1: [0.274, 0.274, 0.274, 0.274, 0.274],
2: [0.224, 0.224, 0.224, 0.224, 0.224],
3: [0.272, 0.272, 0.272, 0.272, 0.272],
5: [0.278, 0.278, 0.278, 0.278, 0.278],
7: [0.274, 0.274, 0.274, 0.274, 0.274],
10: [0.282, 0.282, 0.282, 0.282, 0.282],
15: [0.272, 0.272, 0.272, 0.272, 0.272],
20: [0.272, 0.272, 0.272, 0.272, 0.272],
25: [0.274, 0.274, 0.274, 0.274, 0.274],
30: [0.254, 0.254, 0.254, 0.254, 0.254]}
k_ave = {}
for key, value in k_to_accuracies.items():
#print(key, '->', value)
k_ave[key] = np.mean(value)
print(k_ave)
k_ave = {}
k_ave = [np.mean(value) for value in k_to_accuracies.values()]
print("\n",k_ave)
k_keys = [key for key in k_to_accuracies.keys()]
print("\n",k_keys)
plt.plot(k_keys, k_ave, '.')
plt.show()
Вопросы
Если возможно, как бы я написал это одной строкой или какой самый эффективный / быстрый способ сделать это.
Также было бы правильно назвать это векторизованным / широковещательным расчетом? Если это возможно, может кто-нибудь объяснить, как я бы векторизовал / транслировал эти строки кода? (также не уверен, что это правильная терминология или даже применимо в этом сценарии). Я еще не нашел учебник solid по этим понятиям, кроме стандартного учебника scipy , а также tutorialspoint .