Обмен данными между 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 могут использовать одно и то же ядро. В своем ноутбуке вы можете выбрать ядро другого ноутбука, и переменные из другого ноутбука будут доступны в обоих ноутбуках.
- Щелкните кнопку, которая описывает ваше текущее ядро.
- Выберите ядро другого ноутбука, переменные которого вы хотите получить.
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
результат.
Я считаю, что теоретически вы должны быть в состоянии сделать это с помощью обмена сообщениями, хотя мне пришлось бы копать глубже, чтобы понять это.
Зачем вам эта возможность?