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
<cours>Écrire du code Python efficace</cours>Exercice interactif pratique
Transformez la théorie en action avec l’un de nos exercices interactifs
Commencer l’exercice