CommencerCommencer gratuitement

Utilisation de %mprun : Hero IMC

Vous souhaitez calculer l'indice de masse corporelle (IMC) d'un échantillon sélectionné de héros. L'IMC peut être calculé à l'aide de la formule suivante :

IMC = masse (kg) / taille (m)²

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

Une fonction nommée calc_bmi_lists a également été créée et enregistrée dans un fichier intitulé bmi_lists.py. Pour plus de commodité, il est affiché 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

Veuillez noter que cette fonction effectue tous les calculs nécessaires à l'aide de la compréhension de liste (d'où le nom « calc_bmi_lists() »). Veuillez approfondir cette fonction et analyser l'empreinte mémoire pour effectuer vos calculs à l'aide de listes:

  • Veuillez charger le package memory_profiler dans votre session IPython.
  • Importez calc_bmi_lists à partir de bmi_lists.
  • Une fois les étapes ci-dessus terminées, veuillez utiliser %mprun pour profiler la fonction calc_bmi_lists() agissant sur vos données relatives aux super-héros. Les tableaux hts et wts ont déjà été chargés dans votre session.

Une fois le codage terminé, veuillez répondre à la question suivante :

Quelle quantité de mémoire les lignes de code de compréhension de liste consomment-elles dans la fonction d'calc_bmi_lists()? (c'est-à-dire, quelle est la somme totale de la colonne d'Increment s pour ces quatre lignes de code ?)

Cet exercice fait partie du cours

Écrire du code Python efficace

Afficher le cours

Exercice interactif pratique

Passez de la théorie à la pratique avec l’un de nos exercices interactifs

Commencer l’exercice