ÎncepețiÎncepe gratuit

Totaluri și medii Pokémon fără buclă

O listă cu 720 de Pokémon a fost încărcată în sesiunea ta sub numele names. Statisticile corespunzătoare fiecărui Pokémon au fost încărcate ca un array NumPy numit stats. Fiecare rând din stats corespunde unui Pokémon din names, iar fiecare coloană reprezintă o statistică individuală (HP, Attack, Defense, Special Attack, Special Defense și Speed, în această ordine.)

Vrei să calculezi valoarea totală a statisticilor fiecărui Pokémon (adică suma fiecărui rând din stats) și valoarea medie a statisticilor fiecărui Pokémon (adică media fiecărui rând din stats), pentru a-l identifica pe cel mai puternic.

Bucla for de mai jos a fost scrisă pentru a colecta aceste valori:

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

Acest exercițiu face parte din cursul

Scriere eficientă a codului Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Înlocuiește bucla for de mai sus folosind NumPy:
    • Creează un array cu totalul statisticilor (total_stats_np) folosind metoda .sum() și specificând axa corectă.
    • Creează un array cu media statisticilor (avg_stats_np) folosind metoda .mean() și specificând axa corectă.
    • Creează lista finală de rezultate (poke_list_np) combinând lista names, array-ul total_stats_np și array-ul avg_stats_np.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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))
Editează și rulează codul