Usando %mprun: Herói BMI
Você gostaria de calcular o índice de massa corporal (BMI) para uma amostra selecionada de heróis. BMI pode ser calculado usando a fórmula abaixo:

Uma amostra aleatória de 25.000 super-heróis foi carregada em sua sessão como uma matriz chamada sample_indices. Essa amostra é uma lista de índices que corresponde ao índice de cada super-herói selecionado na lista heroes.
Uma função chamada calc_bmi_lists também foi criada e salva em um arquivo intitulado bmi_lists.py. Para sua conveniência, ele é exibido abaixo:
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
Observe que essa função executa todos os cálculos necessários usando a compreensão de lista (daí o nome calc_bmi_lists()). Aprofunde-se nessa função e analise o espaço de memória para realizar seus cálculos usando listas:
- Carregue o pacote
memory_profilerem sua sessão do IPython. - Importe
calc_bmi_listsdebmi_lists. - Depois que você concluir as etapas acima, use
%mprunpara criar o perfil da funçãocalc_bmi_lists()que atua nos dados dos super-heróis. A matrizhtse a matrizwtsjá foram carregadas em sua sessão.
Depois que você terminar de codificar, responda à seguinte pergunta:
Quanta memória as linhas de código de compreensão da lista consomem na função calc_bmi_lists()? (Ou seja, qual é a soma total da coluna Increment para essas quatro linhas de código?)
Este exercicio faz parte do curso
Escrevendo código Python eficiente
exercicio interativo prático
Transforme teoria em prática com um dos nossos exercicio interativos
Iniciar exercicio