MulaiMulai sekarang secara gratis

Total dan rata-rata Pokémon tanpa loop

Daftar berisi 720 Pokémon telah dimuat ke sesi Anda dengan nama names. Statistik masing-masing Pokémon telah dimuat sebagai array NumPy bernama stats. Setiap baris stats sesuai dengan satu Pokémon di names dan setiap kolom merepresentasikan statistik Pokémon individual (berturut-turut: HP, Attack, Defense, Special Attack, Special Defense, dan Speed).

Anda ingin mengumpulkan nilai total statistik setiap Pokémon (yakni jumlah dari setiap baris di stats) dan nilai rata-rata statistik setiap Pokémon (yakni mean dari setiap baris di stats) agar Anda dapat menemukan Pokémon terkuat.

For loop di bawah ini ditulis untuk mengumpulkan nilai-nilai tersebut:

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

Latihan ini adalah bagian dari kursus

Menulis Kode Python yang Efisien

Lihat Kursus

Petunjuk latihan

  • Gantikan for loop di atas menggunakan NumPy:
    • Buat array total statistik (total_stats_np) menggunakan metode .sum() dan tentukan axis yang tepat.
    • Buat array rata-rata statistik (avg_stats_np) menggunakan metode .mean() dan tentukan axis yang tepat.
    • Buat daftar keluaran akhir (poke_list_np) dengan menggabungkan daftar names, array total_stats_np, dan array avg_stats_np.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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))
Edit dan Jalankan Kode