CommencezCommencez gratuitement

Utiliser %mprun : IMC des héros

Vous souhaitez calculer l'indice de masse corporelle (IMC) pour un échantillon de héros. L'IMC se calcule avec la formule ci-dessous :

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

Un échantillon aléatoire de 25 000 superhéros a été chargé dans votre session sous forme de tableau nommé sample_indices. Cet échantillon est une liste d'indices correspondant à l'indice de chaque superhéros sélectionné dans la liste heroes.

Une fonction nommée calc_bmi_lists a aussi été créée et enregistrée dans un fichier intitulé bmi_lists.py. Pour vous faciliter la tâche, elle est affichée ci-dessous :

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

Remarquez que cette fonction effectue tous les calculs nécessaires au moyen de compréhensions de liste (d'où le nom calc_bmi_lists()). Examinez cette fonction de plus près et analysez l'empreinte mémoire lorsqu'on effectue les calculs avec des listes :

  • Chargez le module memory_profiler dans votre session IPython.
  • Importez calc_bmi_lists depuis bmi_lists.
  • Une fois ces étapes terminées, utilisez %mprun pour profiler la fonction calc_bmi_lists() appliquée à vos données de superhéros. Les tableaux hts et wts ont déjà été chargés dans votre session.

Après avoir terminé votre code, répondez à la question suivante :

Quelle quantité de mémoire les lignes de code avec des compréhensions de liste consomment-elles dans la fonction calc_bmi_lists() ? (c.-à-d. quelle est la somme totale de la colonne Increment pour ces quatre lignes de code ?)

Cette activité fait partie du cours

Rédiger du code Python efficace

Voir le cours

Exercice interactif pratique

Passez de la théorie à l’action grâce à l’un de nos exercices interactifs

Commencer l’exercice