web-dev-qa-db-ja.com

IPython Notebook間でデータを共有する

同じサーバーで複数のIPythonノートブックを実行している場合。それらの間でデータを共有する方法はありますか?たとえば、別のノートブックから変数をインポートしますか?ありがとう!

28
Kyle Siegel

これは私にとってはうまくいきます:

%storeコマンドを使用すると、2つの異なるノートブック間で変数を渡すことができます。

data = 'これは別のノートブックに渡したい文字列です'%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/

31
blue-sky

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
2
gibbone

データが単一の変数内にある場合は、1つのノートブックで%saveマジックを使用してファイルに保存し、別のノートブックで再度読み取ってみてください。

1つの難点は、テキストファイルにはデータが含まれているが変数の定義は含まれていないため、通常は変数の定義と連結し、その結果をexecと連結します。

1
Tony Williams

理論的には messaging を使用してこれを実行できるはずですが、それを理解するにはさらに深く掘り下げる必要があります。

なぜこの機能が必要なのですか?

0
dmargol1

Jupyter Labのノートブックは同じカーネルを共有できます。ノートブックでは、別のノートブックのカーネルを選択でき、他のノートブックの変数は両方のノートブックで使用できます。

screenshot Jupyter Lab kernel selection popup

  1. 現在のカーネルを説明するボタンをクリックします。
  2. 変数にアクセスする他のノートブックのカーネルを選択します。
0