2016-04-01 24 views
0

私はImageのいくつかの特徴を持ち、画像の前処理の後に私は今後の作品で頻繁に使う必要のあるたくさんのデータを持っています。ですから、時間を節約するために、画像の特徴のデータをCSV形式で保存したいと考えています。以下のイメージフィーチャーは、強度、歪度、尖度、Std_deviation Max5、Min5の行属性です。特徴行列をCSVファイルとして保存する方法

ここで、すべての画像の特徴は、サイズが(34560,1)のnumpy配列です。

これらの画像のすべての機能からなるcsvファイルの作成方法。例えば

+0

ですから、それぞれの行属性の34560の6つのnumpyの配列を持っていますか?そして、それを単一のcsvファイルに保存したいのですか? – Hun

+0

あなたは任意のオブジェクトを持っているなら、Pythonの直列化のための単語を 'pickle'するのが最も簡単です。あなたのケースですべてがナンシー配列なら、.csvから読み込み、将来np.arraysに変換するのではなく、 'np.save'や' np.savez'を使ってそれらを取り除くことができます。 'np.load'はそれらを戻します。 – roadrunner66

+0

@ Sung私は、画像のボクセル当たり合計80個の特徴と1個のラベル、すなわち合計81個の属性を有し、各属性はサイズ176526x1のnumpy列配列である。私はそれらを1つのファイルに保存して時間を節約し、毎回計算する必要がないようにしたい。 –

答えて

0

よ、変数「結果」に入れて、あなたのアウトを得た場合、あなたは以下を使用してcsv形式でその結果を保存することができますが、あなたが言及することができ、「Myresult」の代わりに

import pandas as pd 
result = "......................"(your expression) 
result1 = pd.DataFrame({'col1':result[:,0],'col2':result[:,1]}) 
result1.to_csv('Myresult.csv', header = False) 

コマンドあなたの欲望のパスを出力します。私の場合、「C:\ Users \ dinesh.n \ Desktop \ Myresult.csv」のようになります。 私はそれが私を許して私を修正しない場合、あなたの疑いをクリアすることを願っています。 ありがとうございます。

+0

お返事ありがとうございます。私の結果はサイズ[176256,81]のnumpy.ndarrayであるため、__' numpy.ndarray 'オブジェクトには' to_csv '属性がありません。もう一つの問題は、ヘッダーもあります** **エネルギー、エントロピーなどの** **ヘッダー**です**。あなたは何を提案したいですか?ありがとうございました –

1

属性名をnumpy配列に含める場合は、structured arrayを使用できます。しかし、それは物事をもう少し複雑にするでしょう。私はむしろ、同じ型のnumpy配列を保存し、属性名を別の場所に保存します。それはより簡単で使いやすくなりました。

例:単純化のために、あなたは長さ4の3つのCOLアレイを持っていることを言わせて:A、B、

a -> array([[1], 
      [2], 
      [3], 
      [4]]) 

a.shape -> (4,1) 

C b、cの配列は、同じ配列の形状を有しています。

データへのアクセスを高速化するには、行アレイとして作成し、ロード時にディスクとメモリに連続して格納する方がよいでしょう。

a = a.ravel(); b = b.ravel(); c = c.ravel() 
a - > array([1, 2, 3, 4]) 
a.shape -> (4,) 

次に、大きな配列にスタックしてcsvファイルに保存します。

x = np.vstack((a,b,c)) 
array([[1, 2, 3, 4], 
     [5, 6, 7, 8], 
     [9, 10, 11, 12]]) 
x.shape -> (3,4) 

次に、このスタックされた配列をcsvファイルに保存します。

np.savetxt('out.csv', x, delimiter=',') 

これは、1つのラインで行うことができます

np.savetxt('out.csv', np.vstack(a.ravel(), b.ravel(), c.ravel()), delimiter='x') 
+0

ありがとう。属性名を追加する方法。私は巨大なデータを持っているので、ヘッダーなしでデータを保存すると、どの列がどのような特徴を表しているかがわかりにくくなります。 –

+0

その場合は、構造化配列を使用する必要があります。私は私の以前の投稿にリンクを掲載しました。 – Hun

関連する問題