%mprun 사용하기: 히어로 BMI
선정된 히어로 표본에 대해 체질량지수(BMI)를 계산해 보려고 합니다. BMI는 아래 공식을 사용해 계산해요:

무작위로 선택된 슈퍼히어로 25,000명의 표본이 sample_indices라는 배열로 세션에 로드되어 있어요. 이 표본은 heroes 리스트에서 선택된 각 슈퍼히어로의 인덱스에 대응하는 인덱스 목록입니다.
calc_bmi_lists라는 함수도 만들어져 bmi_lists.py 파일에 저장되어 있어요. 편의를 위해 아래에 표시합니다:
def calc_bmi_lists(sample_indices, hts, wts):
# Gather sample heights and weights as lists
s_hts = [hts[i] for i in sample_indices]
s_wts = [wts[i] for i in sample_indices]
# Convert heights from cm to m and square with list comprehension
s_hts_m_sqr = [(ht / 100) ** 2 for ht in s_hts]
# Calculate BMIs as a list with list comprehension
bmis = [s_wts[i] / s_hts_m_sqr[i] for i in range(len(sample_indices))]
return bmis
이 함수는 모든 필요한 계산을 리스트 컴프리헨션으로 수행한다는 점에 주목하세요(그래서 이름이 calc_bmi_lists()예요). 이 함수를 좀 더 자세히 살펴보고, 리스트를 사용해 계산할 때의 메모리 사용량을 분석해 보세요:
memory_profiler패키지를 IPython 세션에 로드하세요.bmi_lists에서calc_bmi_lists를 가져오세요.- 위 단계를 마쳤다면, 슈퍼히어로 데이터에 대해
calc_bmi_lists()함수를 프로파일링하기 위해%mprun을 사용하세요.hts배열과wts배열은 이미 세션에 로드되어 있어요.
코딩을 마친 후, 아래 질문에 답해 주세요:
calc_bmi_lists() 함수에서 리스트 컴프리헨션으로 작성된 코드 줄들은 얼마나 많은 메모리를 사용하나요? (즉, 이 네 줄에 대해 Increment 열의 합계는 얼마인가요?)
이 연습은 강의의 일부입니다
