获取Python recarray的属性/列

10

我试图获取一个 recarray 的列标题,并遇到了很大的麻烦。如果我使用pylab的csv2rec函数读入一个.csv文件,我可以通过以下方式访问列标题:

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

其中'column1'是第一列的标题,它将返回该列中其余的所有值。但是,我正在读取一个.csv文件,我不知道所有的列标题值是什么,并且我希望能够访问它们(循环遍历或设置列表)。这似乎应该很简单。有任何想法吗?

1个回答

16

你可以使用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')

或者,使用您的示例:

[physics@aurora ~/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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接