9

再配列の列タイトルを取得しようとしていますが、かなりの問題が発生しています。pylab の csv2rec 関数を使用して .csv ファイルを読み込むと、次の方法で列のタイトルにアクセスできます。

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

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

4

1 に答える 1

13

使用できます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
于 2011-12-16T06:58:28.210 に答える