Bei der Datenanalyse auf Jupyter (IPython) werden immer mehr Daten im Speicher gesammelt, sodass Sie die Variablen überprüfen möchten, die den Speicher belegen. Wenn Sie in einem solchen Fall den folgenden Befehl ausführen, werden die Variablen und die Speicherkapazität der Variablen in einer Liste angezeigt.
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)),'|'))
Das Ausgabeergebnis sieht wie folgt aus.
Mit diesem Befehl werden jedoch die Ergebnisse aller in Jupyter definierten Variablen ausgegeben. Wenn Sie beispielsweise nur die Variablen extrahieren möchten, deren Speicherkapazität über einem bestimmten Wert liegt, ordnen Sie dies wie folgt an. Machen.
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: #Nur hier arrangieren
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: #Nur hier arrangieren
print("{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|'))
Dann
Wie Sie sehen, können nur Variablen mit einer großen Speicherkapazität extrahiert werden.
Wenn Sie es soweit schaffen,
del U_Global, V_Global
Sie können unnötige Variablen angeben und löschen. Sie können den Speicher freigeben und die Analyse bequem auf Jupyter (IPython) fortsetzen.
Der Titel lautet "auf Jupyter (IPython)", aber ich denke, dass er auf anderen Schnittstellen wahrscheinlich auf die gleiche Weise angezeigt wird. Da jedoch str.format () verwendet wird, muss Python 2.6 oder höher sein, um eine korrekte Ausgabe zu gewährleisten.
Recommended Posts