CommencerCommencer gratuitement

Utilisation de %mprun : IMC des héros

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é, 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

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 des data. 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 calc_bmi_lists() ? (c'est-à-dire, quelle est la somme totale de la colonne Increment 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