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é, elle est affichée 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
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_profilerdans votre session IPython. - Importez
calc_bmi_arraysà partir debmi_arrays. - Une fois les étapes ci-dessus terminées, veuillez utiliser
%mprunpour profiler la fonctioncalc_bmi_arrays()agissant sur vos données relatives aux super-héros des data. Les tableauxsample_indices,htsetwtsont é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 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
Commencer l’exercice