在IPython笔记本之间共享数据

时间:2015-07-24 23:53:03

标签: python ipython ipython-notebook ipython-magic

如果我在同一台服务器上运行多个IPython笔记本。有没有办法在它们之间共享数据?例如,从另一个笔记本导入变量?谢谢!

5 个答案:

答案 0 :(得分:28)

这对我有用:

  

%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/

答案 1 :(得分:2)

IPython支持%store魔术(here is the documentation)。似乎具有与pickle相同的约束条件:如果可以对文件进行腌制,则它也可以存储。

无论如何,它可以肯定地与常见的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

答案 2 :(得分:2)

Jupyter Lab中的笔记本可以共享相同的内核。在您的笔记本中,您可以选择另一个笔记本的内核,另一个笔记本中的变量将在两个笔记本中均可用。

screenshot Jupyter Lab kernel selection popup

  1. 单击描述您当前内核的按钮。
  2. 选择另一个笔记本的内核,您要访问其变量。

答案 3 :(得分:1)

如果您的数据位于单个变量中,请尝试使用一个笔记本中的%save魔法将其保存到文件中,然后在另一个笔记本中将其读回。

一个难点是文本文件将包含数据但没有变量定义,因此我通常将其与变量定义相连,然后exec结果。

答案 4 :(得分:0)

我相信理论上你应该能够messaging这样做,不过我需要深入挖掘才能弄明白。

为什么你需要这种能力?