我正在從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