2011-12-16 12 views
5

再配列の列タイトルを取得しようとしていて、かなりの問題に遭遇しています。私はpylabのcsv2rec機能を使用して、.csvファイルを読み込む場合は、私は次のように列のタイトルにもアクセスできるようにしています:再配列属性/列を取得するpython

「column1のは、」最初の列のタイトルであり、それは残りの部分を返します
from pylab import csv2rec 
x = csv2rec(file.csv) 
x.column1 
x.column2 

列の値のしかし、私は列タイトルのすべての値が何であるかわからない.csvファイルを読んでいるので、それらにアクセスできるようにしたい(ループスルーまたはリストを設定する)。これは単純なはずです。何か案は?

答えて

7

あなたはx.dtype.namesを使用することができます。

>>> import numpy as np 

>>> a = np.array([0.1,0.2]) 
>>> b = np.array([0.3,0.4]) 
>>> dtype = {'names' : ['a','b'], 'formats' : ['f8', 'f8']} 
>>> c = np.rec.fromarrays([a,b], dtype = dtype) 
>>> c 
rec.array([(0.1, 0.3), (0.2, 0.4)], 
     dtype=[('a', '<f8'), ('b', '<f8')]) 
>>> print c.dtype.names 
('a', 'b') 

それとも、あなたの例を使用して:

[[email protected] ~/calc ]$ cat csv.dat 
a,b 
0.1,0.3 
0.2,0.4 

In [1]: from pylab import csv2rec 

In [2]: x = csv2rec('csv.dat') 

In [3]: for name in x.dtype.names: 
    ...:   print name 
a 
b 
関連する問題