notebook magic help functions python ipython ipython-notebook ipython-magic

magic - python jupyter timeit



Compartir datos entre portátiles IPython (4)

Si tengo varios notebooks IPython corriendo en el mismo servidor. ¿Hay alguna forma de compartir datos entre ellos? Por ejemplo, ¿importando una variable de otro cuaderno? ¡Gracias!


Creo que, en teoría, deberías poder hacerlo con messaging , aunque tendría que profundizar mucho más para averiguarlo.

¿Por qué necesitarías esta capacidad?


Esto funciona para mí:

El comando% store le permite pasar variables entre dos cuadernos diferentes.

data = ''esta es la cadena que quiero pasar a un cuaderno diferente''% de datos de la tienda

Ahora, en un nuevo cuaderno ...% store -r data print (datos) esta es la cadena que quiero pasar a un cuaderno diferente

He probado con éxito con el conjunto de datos de sklearn:

from sklearn import datasets dataset = datasets.load_iris() %store dataset

en cuaderno para leer datos:

%store -r dataset

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


IPython admite el %store magic ( aquí está la documentación ). Parece tener las mismas restricciones de pickle : si el archivo puede ser pickled también se podrá almacenar.

De todos modos, funcionará seguro con los tipos comunes de Python. Aquí hay un ejemplo básico:

var_1 = [1,2,3,4] #list var_2 = {''a'':1,''b'':2,''c'':3} #dict var_3 = (6,7,8) #tuple var_4 = {''d'',''e'',''f''} #set %store var_1 %store var_2 %store var_3 %store var_4

Stored ''var_1'' (list) Stored ''var_2'' (dict) Stored ''var_3'' (tuple) Stored ''var_4'' (set)

Luego, en un cuaderno IPython diferente, será suficiente escribir:

%store -r var_1 %store -r var_2 %store -r var_3 %store -r var_4


Si sus datos están en una sola variable, intente guardarlos en un archivo con el %save magic en un cuaderno y luego leerlos en otro.

La única dificultad es que el archivo de texto contendrá los datos pero no la definición de la variable, por lo que generalmente lo contatigo con una definición variable y luego exec el resultado.