我正在从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()
首先,这是有点儿大量的代码读取一个CSV文件导入词典和关键字的关键字的列表。有更快/更好的方法吗?
但现在,我想知道一个字典数组是否真的是我想要的。我应该制作一组对象并将其作为一组对象吗?或者是其他东西?
如果我有我的字典阵,“数据”,我会得到一些“列”像 年龄=([数据DAT [“时代”对于DAT])阵列
那是正确的如何做到这一点?有没有办法像“年龄=数据 - >年龄”这样做会更快?
希望能得到一些指导。谢谢。
你有一个词典列表,而不是一个字典数组。好像你想要一个普通的旧数组或可能是一个recarray。看看numpy.loadtxt或csv.reader。 – 2012-02-21 02:15:42