2016-03-11 12 views
7

Ich habe zwei verschiedene Jupyter-Notebooks, die auf demselben Server laufen. Ich würde gerne einige (nur wenige) der Variablen eines Notebooks über das andere Notebook aufrufen (ich muss vergleichen, ob die beiden verschiedenen Versionen des Algorithmus im Prinzip die gleichen Ergebnisse liefern). Gibt es eine Möglichkeit, dies zu tun?Share Variablen zwischen verschiedenen Jupyter-Notebooks

Dank

Antwort

5

Wenn Sie nur etwas brauchen Quick'n verschmutzt, können Sie das pickle Modul verwenden können, um die Daten persistent zu machen (in einer Datei speichern) und dann durch anderes Notebook abgeholt haben. Beispiel:

import pickle 

a = ['test value','test value 2','test value 3'] 

# Choose a file name 
file_name = "sharedfile" 

# Open the file for writing 
with open(file_name,'wb') as my_file_obj: 
    pickle.dump(a,my_file_obj) 

# The file you have just saved can be opened in a different session 
# (or iPython notebook) and the contents will be preserved. 

# Now select the (same) file to open (e.g. in another notebook) 
file_name = "sharedfile" 
# Open the file for reading 
file_object = open(file_Name,'r') 
# load the object from the file into var b 
b = pickle.load(file_object) 

print(b) 
>>> ['test value','test value 2','test value 3'] 
3

Zwischen zwei Jupyter-Notebooks können Sie den Befehl% store verwenden.

Im ersten jupyter Notebook:

data = 'string or data-table to pass' 
%store data 
del data 

Im zweiten jupyter Notebook:

%store -r data 
data 

Sie können here weitere Informationen finden.

1

können Sie gleiche magic commands verwenden zu tun this.The Cell magic: %%cache im IPython Notebook kann in den Cache Ergebnisse und Ausgänge der langjährigen Berechnungen in einer persistenten Beize-Datei verwendet werden. Nützlich, wenn einige Berechnungen in einem Notebook lang sind und Sie die Ergebnisse einfach in einer Datei speichern möchten.

Um es in Ihrem Notebook zu verwenden, müssen Sie zuerst das Modul ipycache installieren, da dieser Cell Magic-Befehl kein eingebauter Magic-Befehl ist.

dann das Modul in Ihrem Notebook laden:

%load_ext ipycache 

Erstellen Sie dann eine Zelle mit:

%%cache mycache.pkl var1 var2 
var1 = 1 # you can put any code you want at there, 
var2 = 2 # just make sure this cell is not empty. 

Wenn Sie diese Zelle zum ersten Mal ausführen, wird der Code ausgeführt wird, und die Variablen var1 und var2 werden in mycache.pkl im aktuellen Verzeichnis zusammen mit den Ausgaben gespeichert. Rich-Display-Ausgaben werden nur gespeichert, wenn Sie die Entwicklungsversion von IPython verwenden. Wenn Sie diese Zelle erneut ausführen, wird der Code übersprungen, die Variablen werden aus der Datei geladen und in den Namespace eingefügt, und die Ausgaben werden im Notizbuch wiederhergestellt.

Alternativ $file_name anstelle von mycache.pkl verwenden, wobei Dateiname eine Variable ist, die den Pfad zur Datei enthält, die für das Caching verwendet wird.

Verwenden Sie die Option --force oder -f, um die Ausführung der Zelle zu erzwingen und die Datei zu überschreiben.

Verwenden Sie die Option --read oder -r, um die Ausführung der Zelle zu verhindern und die Variablen immer aus dem Cache zu laden. Eine Ausnahme wird ausgelöst, wenn die Datei nicht existiert.

ref: Die Github-Repository von ipycache und die example notebook

Verwandte Themen