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 :

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_profilerdans votre session IPython. - Importez
calc_bmi_listsà partir debmi_lists. - Une fois les étapes ci-dessus terminées, veuillez utiliser
%mprunpour profiler la fonctioncalc_bmi_lists()agissant sur vos données relatives aux super-héros des data. Les tableauxhtsetwtsont 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
Exercice interactif pratique
Passez de la théorie à la pratique avec l’un de nos exercices interactifs
Commencer l’exercice