Обмен данными между IPython Notebooks

Если у меня есть несколько ноутбуков IPython, работающих на одном сервере. Есть ли способ обмена данными между ними? Например, импортировать переменную из другой записной книжки? Спасибо!

4 ответа

Это работает для меня:

Команда%store позволяет передавать переменные между двумя разными записными книжками.

data = 'это строка, которую я хочу передать в другой блокнот' % данных хранилища

Теперь в новой записной книжке… %store -r print data (data) это строка, которую я хочу передать в другую записную книжку

Я успешно протестировал набор данных sklearn:

from sklearn import datasets

dataset = datasets.load_iris()

%store dataset

в тетради для чтения данных:

%store -r dataset

источник: https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

Ноутбуки в Jupyter Lab могут использовать одно и то же ядро. В своем ноутбуке вы можете выбрать ядро ​​другого ноутбука, и переменные из другого ноутбука будут доступны в обоих ноутбуках.

  1. Щелкните кнопку, которая описывает ваше текущее ядро.
  2. Выберите ядро ​​другого ноутбука, переменные которого вы хотите получить.

IPython поддерживает %store магия ( вот документация). Кажется, что он имеет те же ограничения для консервирования: если файл может быть обработан, он также будет сохранен.

Во всяком случае, это будет работать точно с распространенными типами Python. Вот основной пример:

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)

Тогда на другом ноутбуке IPython будет достаточно набрать:

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

Если ваши данные находятся в одной переменной, попробуйте сохранить их в файл, используя %save магия в одной записной книжке, а затем читать ее в другой.

Единственная трудность состоит в том, что текстовый файл будет содержать данные, но без определения переменной, поэтому я обычно связываю его с определением переменной, а затем exec результат.

Я считаю, что теоретически вы должны быть в состоянии сделать это с помощью обмена сообщениями, хотя мне пришлось бы копать глубже, чтобы понять это.

Зачем вам эта возможность?

Другие вопросы по тегам