40

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

4

5 回答 5

54

这对我有用:

%store 命令允许您在两个不同的笔记本之间传递变量。

data = '这是我要传递给不同笔记本的字符串' %store data

现在,在一个新笔记本中...... %store -r data print(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/

于 2017-02-01T13:39:19.730 回答
9

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

屏幕截图 Jupyter Lab 内核选择弹出窗口

  1. 单击描述当前内核的按钮。
  2. 选择要访问其变量的另一个笔记本的内核。
于 2020-03-26T08:51:05.943 回答
6

IPython 支持%store魔法(这里是文档)。它似乎具有相同的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
于 2018-06-20T15:39:13.110 回答
2

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

一个困难是文本文件将包含数据但没有变量定义,所以我通常用变量定义和exec结果来连接它。

于 2015-07-26T23:45:04.997 回答
0

我相信理论上你应该能够通过消息传递来做到这一点,尽管我必须深入挖掘才能弄清楚。

为什么你需要这种能力呢?

于 2015-07-25T00:08:15.613 回答