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
risposta
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à?
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? –
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
.
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? –
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
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/
Per ulteriori informazioni: '% store?' In IPython. – EOL
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. –