Если у меня есть несколько ноутбуков IPython, работающих на одном сервере. Есть ли способ обмена данными между ними? Например, импортирование переменной из другого ноутбука? Благодарю!
Обмен данными между IPython Notebooks
Ответ 1
Это работает для меня:
Команда% store позволяет передавать переменные между двумя различными ноутбуками.
data = 'это строка, которую я хочу передать в хранилище данных для разных ноутбуков%
Теперь, в новом ноутбуке...% store -r data print (data) это строка, которую я хочу передать в другой блокнот
Я успешно прошел тестирование с помощью набора данных sklearn:
from sklearn import datasets
dataset = datasets.load_iris()
%store dataset
в записной книжке для чтения данных:
%store -r dataset
src: https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/
Ответ 2
Если ваши данные находятся в одной переменной, попробуйте сохранить его в файл, используя магию %save
в одном ноутбуке, а затем прочитав его обратно в другом.
Одна из трудностей состоит в том, что текстовый файл будет содержать данные, но не имеет определения переменной, поэтому я обычно свяжу его с определением переменной, а затем exec
результат.
Ответ 3
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
Ответ 4
Я считаю, что теоретически вы должны быть в состоянии сделать это с помощью обмена сообщениями, хотя мне придется копать намного глубже, чтобы понять это.
Зачем вам нужна эта возможность?