ПочатиПочніть безкоштовно

Підсумки та середні значення Pokémon без циклу

Список із 720 Pokémon завантажено у вашу сесію під назвою names. Відповідні характеристики кожного Pokémon завантажено як масив NumPy під назвою stats. Кожен рядок stats відповідає певному Pokémon у names, а кожен стовпець представляє окрему характеристику Pokémon (відповідно HP, Attack, Defense, Special Attack, Special Defense і Speed).

Ви хочете зібрати загальне значення характеристик кожного Pokémon (тобто суму кожного рядка в stats) і середнє значення характеристик кожного Pokémon (тобто середнє кожного рядка в stats), щоб знайти найсильнішого Pokémon.

Нижче наведено цикл 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))

Ця вправа є частиною курсу

Ефективне написання коду Python

Переглянути курс

Інструкції до вправи

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

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Create a total stats array
total_stats_np = ____.____(axis=____)

# Create an average stats array
avg_stats_np = ____

# Combine names, total_stats_np, and avg_stats_np into a list
poke_list_np = [*____(names, total_stats_np, avg_stats_np)]

print(poke_list_np == poke_list, '\n')
print(poke_list_np[:3])
print(poke_list[:3], '\n')
top_3 = sorted(poke_list_np, key=lambda x: x[1], reverse=True)[:3]
print('3 strongest Pokémon:\n{}'.format(top_3))
Редагувати та запускати код