2017-09-07 4 views
0

私は、次のような問題があります。私はすべての行数が同じ配列の与えられた数を、記述する必要がは、テキストファイルに、様々なサイズの複数のアレイを、書く

が、異なる数の列をテキストファイルに変換します。それはどのdimesnionを持っている各配列をチェックし、各エントリをテキストファイルに書き込む以外の別の方法はありますか?

は、私はこのような何か試してみました:

def WriteResultToTxt(X,Y): 

    f = open('Test.txt','w') 
    Z = zip(X,Y) 
    np.savetxt(f,Z) 
    f.close 

を、私がしようとすると、この:

x = np.arange(0,200,1).reshape((100,2)) 
y = np.arange(0,50,0.5).reshape((100,1)) 
WriteResultToTxt(x,y) 

は、私が「範囲外のタプルインデックス」というエラーを取得し

+0

あなたはもっと客観的なものを明確にすることができますか?結果として得られるTXTはどのように見えますか? – Dror

+0

は基本的にExcelシートのようです。各配列は列にあり、各列はタブなどで区切られていなければなりません。それは理にかなっていますか? –

+0

numpy連結を使用して配列を1つの配列に結合します。 – hpaulj

答えて

1

最も簡単に使用することですパンダ。

import pandas as pd 
import numpy as np 
x = np.arange(0,200,1).reshape((100,2)) 
y = np.arange(0,50,0.5).reshape((100,1)) 
pd.concat([pd.DataFrame(x), pd.DataFrame(y)], axis=1).to_csv('foo.csv') 

まず、2つのアレイを連結し、次にCSVにエクスポートします。 axis=1を指定すると、連結は列単位になります。 1つは横に並んでいない、もう一方に隣接しています。

+0

パーフェクト、ありがとう。 'axis = 1'が何のために使われているのか説明できますか? –

+0

私はxとyだけでなく、20のそのような配列を言うことができたらどうなりますか?それらをうまく縮めるためのエレガントな方法はありますか? –

+0

'concat'の引数はリストで、配列のリストを与えることができます。彼らは行の数が異なる場合は、少し慎重にする必要があります – Dror

関連する問題