1. 학습
  2. /
  3. 강의
  4. /
  5. 효율적인 Python 코드 작성

Connected

연습 문제

모두 종합하기: 포켓몬 z-점수

720마리의 포켓몬 목록이 names로 세션에 로드되어 있어요. 각 포켓몬의 체력(Health Points)은 hps라는 NumPy 배열에 저장되어 있습니다. z-score를 사용해 각 포켓몬의 HP가 전체 평균에서 표준편차 몇 배만큼 떨어져 있는지 분석하려고 합니다.

아래 코드는 각 포켓몬의 HP z-점수를 계산하고, z-점수를 기준으로 HP가 가장 높은 포켓몬을 모으기 위해 작성된 것입니다:

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

지침 1/3

undefined XP
    1
    2
    3
  • NumPy를 사용해 z-점수를 만드는 for 반복문을 제거하세요.
  • 그런 다음 names, hps, z_scores 객체를 결합해 poke_zscores2라는 리스트로 만드세요.