2015-10-13 47 views
1

我想從一個大的csv文件(大約250 000行)填充數組列表,但它需要很長時間。我確信有一種方法可以使這個過程更快,但我不知道該怎麼做!如何使此過程更快地工作?

下面是代碼:

import csv 
import numpy as np 

energy = [] 
ondeIG =[] 
time =[] 
envelope = [] 

with open('file.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader:   
     time = np.hstack([time, row['Time']]) 
     energy = np.hstack([energy, row['Energy']]) 
     ondeIG = np.hstack([ondeIG, row['OndeIG']]) 
     envelope = np.hstack([envelope, row['envelope']]) 

謝謝!

+0

你可以發佈你的CSV外觀的前幾行一樣,你可能要快得多使用熊貓加載 – EdChum

回答

3

np.hstack()每構建一個新的ndarray是昂貴的。您可以更新的就地追加名單:

with open('file.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader:   
     time.append(row['Time']) 
     energy.append(row['Energy']) 
     ondeIG.append(row['OndeIG']) 
     envelope.append(row['envelope']) 
0

從CSV文件導入數據,看看熊貓,更特別在pandas.read_csv()

在這裏,你正在服用大量的時間,因爲你重建在每次迭代的數組(4列,偶數)。