ComenzarEmpieza gratis

Utilizando %mprun: Héroe IMC

Te gustaría calcular el índice de masa corporal (IMC) de una muestra seleccionada de héroes. El IMC puede calcularse mediante la siguiente fórmula:

BMI = mass(kg) / height(m)^2

Se ha cargado en tu sesión una muestra aleatoria de 25.000 superhéroes como un arreglo llamado sample_indices. Esta muestra es una lista de índices que corresponde al índice de cada superhéroe seleccionado en la lista heroes.

También se ha creado una función llamada calc_bmi_lists y se ha guardado en un archivo llamado bmi_lists.py. Para mayor comodidad, se muestra a continuación:

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

Observa que esta función realiza todos los cálculos necesarios utilizando la comprensión de listas (de ahí el nombre calc_bmi_lists()). Profundiza en esta función y analiza la huella de memoria para realizar tus cálculos utilizando listas:

  • Carga el paquete memory_profiler en tu sesión IPython.
  • Importa calc_bmi_lists desde bmi_lists.
  • Una vez que hayas completado los pasos anteriores, utiliza %mprun para perfilar la función calc_bmi_lists() que actúa sobre los datos de tus superhéroes. El arreglo hts y el arreglo wts ya se han cargado en tu sesión.

Cuando hayas terminado de codificar, responde a la siguiente pregunta:

¿Cuánta memoria consumen las líneas de código de comprensión de la lista en la función calc_bmi_lists()? (es decir, ¿cuál es la suma total de la columna Increment para estas cuatro líneas de código?)

Este ejercicio forma parte del curso

Escribir código Python eficiente

Ver curso

Ejercicio interactivo práctico

Pon en práctica la teoría con uno de nuestros ejercicios interactivos

Empezar ejercicio