2017-04-11 8 views
0

たとえば、csvファイルに10個の列が含まれています。 2つの変数に読み取ることは可能ですか?最初は1〜2列の列があり、2列目にはloadtxtまたはgenfromtxtの最後の列が含まれますか?csvデータをnumpyで読み取る

+2

あなたは可能性a1 = a [:,:-1]とa2 = a [:, [-1]]の2つの異なるスライスを見ると、 ' – jez

+0

インポートcsvモジュールを調べましたか? この回答は仕事が完了する必要があります:http://stackoverflow.com/questions/24662571/python-import-csv-to-list –

+0

@ Z.Bagleyはい、これです'numpy'の質問です。すでに' numpy'データ構造体に直接csvsをロードする関数があります。 'csv'をこの場合は、不要な仲買人です。 –

答えて

1
a = numpy.loadtxt('blah.csv', delimiter=',') # loads it all into one big array 
a1 = a[:, :-1] # a view of all but the last column 
a2 = a[:, [-1]] # a copy of just the last column 

+0

残念ながら、私は 'a [:, [-1]]はビューではなく、コピーであると信じています。 –

+0

@ juanpa.arrivillaga良い点 – jez

+0

ええ、おそらくあなたは、とにかくビューを望んでいません。 –

0
numpy.loadtext('filename.csv', usecols(0,1,2,...,n-2)) 
numpy.loadtext('filename.csv', usecols = n-1) 

ノート(または、あなたの最後の列変数は1次元になりたい場合は、あなたがa[:, [-1]]を言っa[:,-1]を使用しての代わりに、それのビューを取得することができます。):インデックスロード時にnumpyが0から開始するため、列の1をデクリメントする必要があります。ドキュメントhttps://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.htmlから

usecols:intまたは列、列が読むために、オプションの 、0が最初のものと。たとえば、usecols =(1,4,5)は2番目、5番目、6番目の列を抽出します。デフォルトでは、すべての列ではなし、>結果が読まれている。」の場合

0

あなたが本当にnumpyのを必要としません。あなたはパンダ(http://pandas.pydata.org/)、またはCSV(https://docs.python.org/2/library/csv.html)ライブラリを使用することができます。

+0

これは質問に答えることはできませんが、私はOPがパンダを見ているという勧告より2番目に多いです。パンダが非常に適しているようなことをしているように聞こえます。 – jez

関連する問題