属性名を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')
ですから、それぞれの行属性の34560の6つのnumpyの配列を持っていますか?そして、それを単一のcsvファイルに保存したいのですか? – Hun
あなたは任意のオブジェクトを持っているなら、Pythonの直列化のための単語を 'pickle'するのが最も簡単です。あなたのケースですべてがナンシー配列なら、.csvから読み込み、将来np.arraysに変換するのではなく、 'np.save'や' np.savez'を使ってそれらを取り除くことができます。 'np.load'はそれらを戻します。 – roadrunner66
@ Sung私は、画像のボクセル当たり合計80個の特徴と1個のラベル、すなわち合計81個の属性を有し、各属性はサイズ176526x1のnumpy列配列である。私はそれらを1つのファイルに保存して時間を節約し、毎回計算する必要がないようにしたい。 –