Совместное использование переменных между различными ноутбуками jupyter
У меня есть два разных ноутбука Jupyter, работающих на одном сервере. Я хотел бы сделать доступ к некоторым (только некоторым из них) из переменных одного ноутбука через другой ноутбук (мне нужно сравнить, если две разные версии алгоритма дают одинаковые результаты, в основном). Есть ли способ сделать это?
Спасибо
Ответы
Ответ 1
Если вам нужно только что-то быстро, вы можете использовать модуль pickle, чтобы сделать данные постоянными (сохранить их на файл), а затем забрать его другим ноутбуком. Например:
import pickle
a = ['test value','test value 2','test value 3']
# Choose a file name
file_name = "sharedfile"
# Open the file for writing
with open(file_name,'wb') as my_file_obj:
pickle.dump(a,my_file_obj)
# The file you have just saved can be opened in a different session
# (or iPython notebook) and the contents will be preserved.
# Now select the (same) file to open (e.g. in another notebook)
file_name = "sharedfile"
# Open the file for reading
file_object = open(file_Name,'r')
# load the object from the file into var b
b = pickle.load(file_object)
print(b)
>>> ['test value','test value 2','test value 3']
Ответ 2
Между 2 ноутбуками jupyter вы можете использовать команду% store.
В первой записной книжке Jupyter:
data = 'string or data-table to pass'
%store data
del data
Во втором блокноте Jupyter:
%store -r data
data
Вы можете найти более подробную информацию здесь.
Ответ 3
Для этого вы можете использовать один и тот же magic commands
. Cell magic
: %%cache
в ноутбуке IPython можно использовать для кэширования результатов и результатов длительных вычислений в постоянном файле pickle. Полезно, когда некоторые вычисления в ноутбуке длинны, и вы хотите легко сохранить результаты в файле.
Чтобы использовать его в своем ноутбуке, сначала необходимо установить модуль ipycache
, так как эта волшебная команда Cell не является встроенной магической командой.
затем загрузите модуль в свой блокнот:
%load_ext ipycache
Затем создайте ячейку с помощью:
%%cache mycache.pkl var1 var2
var1 = 1 # you can put any code you want at there,
var2 = 2 # just make sure this cell is not empty.
Когда вы выполняете эту ячейку в первый раз, код выполняется, а переменные var1 и var2 сохраняются в mycache.pkl в текущем каталоге вместе с выводами. Богатые выходные данные отображаются только в том случае, если вы используете версию IPython для разработки. Когда вы снова выполняете эту ячейку, код пропускается, переменные загружаются из файла и вводятся в пространство имен, а выходы восстанавливаются в ноутбуке.
В качестве альтернативы используйте $file_name
вместо mycache.pkl
, где file_name - это переменная, содержащая путь к файлу, используемому для кеширования.
Используйте параметр --force
или -f
, чтобы принудительно выполнить выполнение ячейки и перезаписать файл.
Используйте параметр --read
или -r
, чтобы предотвратить выполнение ячейки и всегда загружать переменные из кеша. Исключение возникает, если файл не существует.
исх:
Хранилище github ipycache и пример ноутбука