Začněte nyníZačněte zdarma

Součty a průměry Pokémonů bez smyčky

Do tvé session byl načten seznam 720 Pokémonů s názvem names. Statistiky každého Pokémona jsou uloženy jako NumPy pole stats. Každý řádek stats odpovídá jednomu Pokémonovi ze seznamu names a každý sloupec reprezentuje jednu statistiku (HP, Attack, Defense, Special Attack, Special Defense a Speed).

Chceš zjistit celkový součet statistik každého Pokémona (tj. součet hodnot v každém řádku stats) a průměrnou hodnotu statistik každého Pokémona (tj. průměr hodnot v každém řádku stats), abys našel/nalezla nejsilnějšího Pokémona.

Níže je smyčka for, která tyto hodnoty sbírá:

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))

Toto cvičení je součástí kurzu

Psaní efektivního kódu v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Nahraď výše uvedenou smyčku for pomocí NumPy:
    • Vytvoř pole celkových statistik (total_stats_np) pomocí metody .sum() se správně zadanou osou.
    • Vytvoř pole průměrných statistik (avg_stats_np) pomocí metody .mean() se správně zadanou osou.
    • Vytvoř výsledný výstupní seznam (poke_list_np) spojením seznamu names, pole total_stats_np a pole avg_stats_np.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))
Upravit a spustit kód