모두 종합하기: 포켓몬 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))
이 연습은 강의의 일부입니다
효율적인 Python 코드 작성
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Calculate the total HP avg and total HP standard deviation
hp_avg = ____.____
hp_std = ____.____
# Use NumPy to eliminate the previous for loop
z_scores = (____ - ____)/____
# Combine names, hps, and z_scores
poke_zscores2 = [*____(names, hps, z_scores)]
print(*poke_zscores2[:3], sep='\n')