簡體   English   中英

在 IPython 筆記本之間共享數據

[英]Share data between IPython Notebooks

如果我在同一台服務器上運行多個 IPython 筆記本。 有沒有辦法在它們之間共享數據? 例如,從另一個筆記本導入一個變量? 謝謝!

這對我有用:

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

Jupyter Lab 中的筆記本可以共享相同的內核。 在您的 notebook 中,您可以選擇另一個 notebook 的內核,並且來自另一個 notebook 的變量將在兩個 notebook 中都可用。

屏幕截圖 Jupyter Lab 內核選擇彈出窗口

  1. 單擊描述您當前內核的按鈕。
  2. 選擇另一個筆記本的內核,您要訪問其變量。

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

如果您的數據在單個變量中,那么嘗試在一個筆記本中使用%save魔法將其%save到一個文件中,然后在另一個筆記本中讀取它。

一個困難是文本文件將包含數據但沒有變量定義,所以我通常將它與變量定義連接起來,然后exec結果。

我相信理論上你應該能夠通過 消息傳遞來做到這一點,盡管我必須深入挖掘才能弄清楚。

你為什么需要這種能力?

非常感謝您提供這些答案。 在各種情況下確實需要它。 就我而言,我有一個大約50萬行的數據框。 我在包含文本的所有列上應用了Bert向量運算。 在該過程開始時,您將無法查看在數據框內已放置了哪些實際值。 因此,使用此%save魔術功能,我們可以繼續查看其他筆記本的進度。 非常感謝。 感謝@Kyle提出問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM