Lors de l'analyse de données sur Jupyter (IPython), les données sont de plus en plus accumulées dans la mémoire, vous voulez donc vérifier les variables qui consomment la mémoire. Dans ce cas, si vous exécutez la commande suivante, les variables et la capacité mémoire des variables seront affichées dans une liste.
Python2
import sys
print "{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|')
print " ------------------------------------ "
for var_name in dir():
if not var_name.startswith("_"):
print "{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|')
Python3
import sys
print("{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|'))
print(" ------------------------------------ ")
for var_name in dir():
if not var_name.startswith("_"):
print("{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|'))
Le résultat de sortie ressemble à ce qui suit.
Cependant, avec cette commande, les résultats de toutes les variables définies sur Jupyter seront affichés, donc par exemple, si vous souhaitez extraire uniquement les variables dont la capacité mémoire est supérieure à une certaine valeur, procédez comme suit. Faire.
Python2
import sys
print "{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|')
print " ------------------------------------ "
for var_name in dir():
if not var_name.startswith("_") and sys.getsizeof(eval(var_name)) > 10000: #Arrangez seulement ici
print "{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|')
Python3
import sys
print("{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|'))
print(" ------------------------------------ ")
for var_name in dir():
if not var_name.startswith("_") and sys.getsizeof(eval(var_name)) > 10000: #Arrangez seulement ici
print("{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|'))
Puis
Comme vous pouvez le voir, seules les variables avec une grande capacité de mémoire peuvent être extraites.
Si vous pouvez le faire jusqu'à présent,
del U_Global, V_Global
Vous pouvez spécifier des variables inutiles et les supprimer. Vous pouvez libérer la mémoire et poursuivre l'analyse confortablement sur Jupyter (IPython).
Le titre dit "sur Jupyter (IPython)", mais je pense qu'il sera probablement affiché de la même manière sur d'autres interfaces. Cependant, comme il utilise str.format (), il doit s'agir de Python 2.6 ou supérieur pour une sortie correcte.
Recommended Posts