1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Viết mã Python hiệu quả

Connected

Bài tập

Tổng hợp: z-score của Pokémon

Danh sách 720 Pokémon đã được nạp vào phiên làm việc của bạn dưới tên names. Mỗi Pokémon có chỉ số Health Points tương ứng được lưu trong một mảng NumPy tên là hps. Bạn muốn phân tích Health Points bằng z-score để xem HP của mỗi Pokémon lệch bao nhiêu độ lệch chuẩn so với trung bình của toàn bộ HP.

Đoạn mã dưới đây được viết để tính z-score HP cho từng Pokémon và thu thập các Pokémon có HP cao nhất dựa trên z-score của chúng:

poke_zscores = []

for name,hp in zip(names, hps):
    hp_avg = hps.mean()
    hp_std = hps.std()
    z_score = (hp - hp_avg)/hp_std
    poke_zscores.append((name, hp, z_score))
highest_hp_pokemon = []

for name,hp,zscore in poke_zscores:
    if zscore > 2:
        highest_hp_pokemon.append((name, hp, zscore))

Hướng dẫn 1/3

undefined XP
    1
    2
    3
  • Dùng NumPy để loại bỏ vòng lặp for dùng để tạo z-score.
  • Sau đó, kết hợp các đối tượng names, hps, và z_scores thành một danh sách tên poke_zscores2.