賢明

2012-03-05 9 views
21

私は、ファイルが見えるようにすることを.txtファイルに保存したいフォーム賢明

a = [1,2,3] 

のnumpyの配列を持っているように:

1 2 3 

の場合私が思うこれに対する簡単な解決策、任意の提案があるはず

1 
2 
3 

:私は、私のようなファイルを取得numpy.savetxtを使うのか?

+1

1Dアレイのみ扱っていますか? –

答えて

25

numpy >= 1.5場合は、あなたが行うことができます:

# note that the filename is enclosed with double quotes,
# example "filename.txt"

numpy.savetxt("filename", a, newline=" ") 

編集

同じ長さの複数の1次元配列

a = numpy.array([1,2,3]) 
b = numpy.array([4,5,6]) 
numpy.savetxt(filename, (a,b), fmt="%d") 

# gives: 
# 1 2 3 
# 4 5 6 

いくつかの1D可変長配列

a = numpy.array([1,2,3]) 
b = numpy.array([4,5]) 

with open(filename,"w") as f: 
    f.write("\n".join(" ".join(map(str, x)) for x in (a,b))) 

# gives: 
# 1 2 3 
# 4 5 
+0

次の行に新しい同一配列をファイルに追加する場合はどうなりますか?最初の行を壊して2行目を続けるには? – Palle

+1

@PatrikT:複数の1D配列を持っているなら、 'numpy.savetxt(filename、(a、b、c))'だけを実行できます。それは行を賢明に保存します。しかし、彼らは同じサイズを持つ必要があります。 – Avaris

+0

たとえばaはbとcよりも短いですか?これら3つの配列を行ごとに保存するにはどうすればよいですか? – Palle

-1
だけ

' '.join(a) 

やファイルにこの出力を書き込みます。

+3

これは、 'TypeError:sequence item 0:expected string numpy.int32 found'を与えます。したがって、結合する前にまず文字列に変換する必要があります。 – BioGeek

+0

'' .join(xのaのstr(x)) –

5
import numpy 
a = numpy.array([1,2,3]) 

with open(r'test.txt', 'w') as f: 
    f.write(" ".join(map(str, a))) 
11

代替答えはそうのような寸法(1, N)を有するようにアレイを再構築することである。

savetext(filename, a.reshape(1, a.shape[0])) 
1

私は受け入れ答えの最初の溶液は場合について問題があることがことがわかっ改行文字は依然として必要です。この問題を解決する最も簡単な方法は次のとおりです。

numpy.savetxt(filename, [a], delimiter='\t') 
関連する問題