Utilisation de %mprun : Hero BMI 2.0
Vérifions si l'utilisation d'une approche différente pour calculer les IMC peut permettre d'économiser de la mémoire. Si vous vous souvenez bien, la taille et le poids de chaque héros sont enregistrés dans un tableau numpy
. Cela signifie que vous pouvez utiliser les fonctionnalités pratiques d'indexation de tableaux et de diffusion de NumPy pour effectuer vos calculs. Une fonction nommée calc_bmi_arrays
a été créée et enregistrée dans un fichier intitulé bmi_arrays.py
. Pour plus de commodité, il est affiché ci-dessous :
def calc_bmi_arrays(sample_indices, hts, wts):
# Gather sample heights and weights as arrays
s_hts = hts[sample_indices]
s_wts = wts[sample_indices]
# Convert heights from cm to m and square with broadcasting
s_hts_m_sqr = (s_hts / 100) ** 2
# Calculate BMIs as an array using broadcasting
bmis = s_wts / s_hts_m_sqr
return bmis
Veuillez noter que cette fonction effectue tous les calculs nécessaires à l'aide de tableaux.
Vérifions si cette approche mise à jour du tableau réduit votre empreinte mémoire :
- Veuillez charger le package
memory_profiler
dans votre session IPython. - Importez
calc_bmi_arrays
à partir debmi_arrays
. - Une fois les étapes ci-dessus terminées, veuillez utiliser
%mprun
pour profiler la fonctioncalc_bmi_arrays()
agissant sur vos données relatives aux super-héros. Les tableauxsample_indices
,hts
etwts
ont é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 d'indexation et de diffusion du tableau consomment-elles dans la fonction d'calc_bmi_array()
? (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
