2015-07-24 26 views
8

Se ho più taccuini IPython in esecuzione sullo stesso server. C'è un modo per condividere i dati tra loro? Ad esempio, importa una variabile da un altro notebook? Grazie!Condividere i dati tra i taccuini IPython

+0

Il codice in esecuzione ogni notebook è il suo proprio processo, in modo che non può condividere le variabili. Avrai bisogno di serializzarli in una forma o nell'altra per trasferirli tra un notebook e l'altro. Il modo migliore per farlo dipende dai tuoi dati, ma CSV o JSON sono due formati popolari. 'Pickle' può salvare la maggior parte delle variabili Python, ma se vuoi anche archiviare i tuoi dati, non è raccomandato, perché dipende dalla specifica versione di Python che stai usando. –

risposta

0

Credo che teoricamente dovresti riuscire a farlo con messaging, anche se dovrei scavare molto più a fondo per capirlo.

Perché avresti bisogno di questa capacità?

+0

Sembra che la messaggistica funzioni potenzialmente. Essenzialmente, sono in piedi su un server per un gruppo di persone che esegue un'analisi dei dati con un pacchetto che sto scrivendo. Ogni notebook sta facendo un'analisi specifica e può essere piuttosto lungo e coinvolto. Occasionalmente, alcuni dati dovranno essere condivisi tra i notebook e non c'è modo di prevedere realmente quali dati dovranno essere condivisi. Ha senso? –

1

Se i dati sono in una singola variabile, provare a salvarlo in un file utilizzando la magia %save in un blocco appunti e quindi rileggendolo in un altro.

L'unica difficoltà è che il file di testo conterrà i dati ma nessuna definizione di variabile, quindi di solito lo contateniamo con una definizione di variabile e quindi il risultato è exec.

+0

Sicuramente una possibile soluzione. Ci sarebbe un modo per farlo senza modificare il notebook con la variabile che voglio? Quindi, essenzialmente, rendere lo scope variabile di un notebook lo stesso di un altro - dando al notebook 1 l'accesso alle variabili del notebook 2, senza modificare affatto il notebook 2? –

+0

Questo non "condivide i dati" ma scrive i precedenti input IPython in un file di testo. La soluzione '% store' di blue-sky salva e legge i dati tra i notebook (e le sessioni, se è per questo). – EOL

7

questo funziona per me: comando store

L'% consente di passare variabili tra due differenti notebook.

data = 'questa è la stringa voglio passare per notebook diverso' % memorizzare i dati

Ora, in un nuovo notebook ...% vendite -r stampa dei dati (dati) questa è la stringa voglio per passare a diversi notebook

ho testato con successo con sklearn set di dati:

from sklearn import datasets 

dataset = datasets.load_iris() 

%store dataset 

in notebook di leggere i dati:

%store -r dataset 

src: https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

+0

Per ulteriori informazioni: '% store?' In IPython. – EOL

Problemi correlati