最佳数据结构:字典数组,对象数组?

Dav*_*415 2 python numpy

我正在从IDL转换为python和numpy(有点像Matlab).这是一个关于处理数据的开放性问题.也许有人可以帮忙.

我的数据的通常情况是我有一个固定的数据类,可能来自电子表格,数据库等.我试图弄清楚哪种数据结构最适合在python和numpy中使用.

我知道csv模块,可以使用csv.DictReader()来读取电子表格.这将逐行读取,并使用电子表格标题(第一行)中的正确名称创建一个字典.

f=open(file,'rU')
dat = csv.DictReader(f)
i=0
data=[] # makes an empty list
i=0
for row in dat:
    data.append(row)
    if i == 0 :
        keys=row.keys()
        print "keys"
        print keys
        print
    i=i+1

f.close()
Run Code Online (Sandbox Code Playgroud)

首先,有很多代码可以将csv文件读入字典列表并键入密钥.有更快/更好的方式吗?

但现在,我想知道一系列字典是否真的是我想要的.我应该制作一类对象并使其成为一个对象数组吗?或者是其他东西?

如果我有我的字典数组,"数据",我会得到一些"列",如age = array([dat ["age"] for data in data])

这是正确的方法吗?有没有像"年龄=数据 - >年龄"那样更快的做法?

会很感激一些指导.谢谢.

Tho*_*s K 5

如果您正在使用电子表格类型的数据,我强烈建议使用pandas,一个专为此类设计的Python包.你这样做:

pandas.read_csv(file)
Run Code Online (Sandbox Code Playgroud)

这给你一个DataFrame,它做各种花哨的索引,并且很好而且快速.