2016-06-23 13 views
0

私は計算をしていますので、Pythonで大規模な配列を使いたいと思っています。問題は、配列に何かをしたいのであれば、私のコードは配列を再構築することになります(時間がかかります)。理想的には、私はしたい:後でpythonでnumpy配列をコンピュータに保存する方法

私のコードを一度実行し、配列を作成します。 アレイをコンピュータに保存します。 - それを別のプロジェクトにロードして、私はそれと一緒に遊ぶことができます。

Iはnumpyのためのマニュアルを見て、私は(ここで、Xは上記私の配列である)

from tempfile import TemporaryFile outfile = TemporaryFile() np.save(outfile, x)

を試みました。

しかし、どこのコンピュータでも.npyファイルが見つからないようです。 (私がPyCharmを使用している場合はそれが役に立ちます)。だから私はそれを保存することができますまた、私はどのように私の配列を別のプロジェクトに読み込むことができますか?

+2

を理由だけではなく、明示的に出力先を指定していませんか? TemporaryFileは定義上、一時的なものです。ロードするには、(suprise!) 'numpy.load()'を使用します。 – Benjamin

答えて

2

あなたはそれのドキュメントが主張したように、あなたのPythonプログラムが終了、TemporaryFileで作成したファイルが他のそれが閉じられた後に存在しなく、もしくはますので、TemporaryFileを使用する必要がなぜ私は少し混乱しています。また、このファイルには名前がないので、これはあなたの問題であり、np.saveではないと私は信じています!

は今、あなたの質問に答えるために、以下を試してみてください。これは、あなたの質問に答える

a = np.load('outfile_name.npy') # loads your saved array into variable a. 

希望:

import numpy as np 
a = np.ones(1000) # create an array of 1000 1's for the example 
np.save('outfile_name', a) # save the file as "outfile_name.npy" 

あなたはあなたがPythonインタプリタを起動し、あなたの配列次回を読み込むことができます! (私は、辞書内の変数をREFにarr_0とarr_1を使用する必要性を発見しても!)

0

は同じQを持っていたし、numpy docsでこれを見つけた

#Store a single array 
import numpy as np 
np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]])) 
np.load('/tmp/123.npy') 
array([[1, 2, 3], 
     [4, 5, 6]]) 

#Store multiple arrays as compressed data to disk, and load it again: 
import numpy as np 
a=np.array([[1, 2, 3], [4, 5, 6]]) 
b=np.array([1, 2]) 
np.savez('/tmp/123.npz', a=a, b=b) 
data = np.load('/tmp/123.npz') 

a1 = data['arr_0'] 
array([[1, 2, 3], 
     [4, 5, 6]]) 
b1 = data['arr_1'] 
array([1, 2]) 
関連する問題