2012-03-14 24 views
0

私はファイルに配列を保存する最も簡単な方法を探しています。これはnumpy.savetxtを使いたいのですが、問題は配列がn個の列で構成されていることです(番号は何をするかによって異なります)。複雑な要素(x + yj)が含まれています。私は1つの列と実際の要素がある場合、それを保存する方法を知っていますが、私はどのように行うのか分かりません。Pythonでファイルに書き込む

誰かがアイデアを持っていますか?あなたがそれらをpickleでき

+0

私はコメントすることは許されないんだけど、あなたがhttp://stackoverflow.com/questions/3685265/how-to-write-a-multidimensional-array-to-a-text-file見てきました申し訳ありません。私は実際にコメントとして働いていました – Snesticle

+0

私は赤いですが、非常に短い答えはありません。実際、私は 'numpy.savetext(' myfile '、myarray、fmt = ???)のようなものを書いています。 – PanAkry

+0

私が与えた例を試しましたか?私は通訳でそれらを使いました。私は彼らが働いていることを知っています。出力は人間が読めるものでなければなりませんか? – strcat

答えて

2

>>> A = np.array([[1,2],[3,4+2j]]) 
>>> pickle.dump(A, open("out.pkl", "wb")) 
>>> pickle.load(open("out.pkl", "rb")) 
array([[ 1.+0.j, 2.+0.j], 
     [ 3.+0.j, 4.+2.j]]) 

しかし、numpy.savenumpy.loadを使用する方が良いだろう、彼らはこのために設計されているとはるかに少ないスペースを使用します。

>>> np.save("out.npy", A) 
>>> np.load("out.npy") 
array([[ 1.+0.j, 2.+0.j], 
     [ 3.+0.j, 4.+2.j]]) 
+0

私はすでにこれを試してみましたが、実際に複素数値をキャストすると虚数部を破棄しますfh.write(asbytes(format%tuple(row)+ newline)) ' – PanAkry

+0

'numpy.savetxt'はnumpyではなくその出力を与えます。保存する。 'savetxt'関数は人間が読める出力を生成しますが、これはうまくいきません。 – strcat

+0

numpy.saveで+1してください。Python以外の環境で使用しない場合は+1してください。 – rdchambers

関連する問題