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 :
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 debmi_lists
. - Une fois les étapes ci-dessus terminées, veuillez utiliser
%mprun
pour profiler la fonctioncalc_bmi_lists()
agissant sur vos données relatives aux super-héros. Les tableauxhts
etwts
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
Exercice interactif pratique
Passez de la théorie à la pratique avec l’un de nos exercices interactifs
