2011-12-16 67 views
5

我試圖檢索一個recarray的列標題,並且遇到相當大的麻煩。如果我使用pylab的csv2rec功能在.csv文件中讀取,我可以訪問下列方式列標題:獲取重新數組屬性/列python

from pylab import csv2rec 
x = csv2rec(file.csv) 
x.column1 
x.column2 

在哪裏「列1」是第一列的標題,它會返回休息列中的值。但是,我正在閱讀一個.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