1. Обучение
  2. /
  3. Курса
  4. /
  5. Эффективный код на Python

Connected

упражнение

Суммарные и средние показатели покемонов без цикла

В вашей сессии загружен список из 720 покемонов под названием names. Статистика каждого покемона загружена в виде массива NumPy под названием stats. Каждая строка stats соответствует покемону из names, а каждый столбец представляет отдельный параметр покемона (HP, Attack, Defense, Special Attack, Special Defense и Speed соответственно).

Вы хотите получить суммарное значение характеристик каждого покемона (то есть сумму каждой строки в stats) и среднее значение его характеристик (то есть среднее арифметическое каждой строки в stats), чтобы найти самого сильного покемона.

Для сбора этих значений был написан следующий цикл for:

poke_list = []

for pokemon,row in zip(names, stats):
    total_stats = np.sum(row)
    avg_stats = np.mean(row)
    poke_list.append((pokemon, total_stats, avg_stats))

Инструкции

100 XP
  • Замените приведённый выше цикл for с помощью NumPy:
    • Создайте массив суммарных характеристик (total_stats_np), используя метод .sum() и указав правильную ось.
    • Создайте массив средних характеристик (avg_stats_np), используя метод .mean() и указав правильную ось.
    • Создайте итоговый список (poke_list_np), объединив список names, массив total_stats_np и массив avg_stats_np.