Python 如何使此过程更快地工作?

Python 如何使此过程更快地工作?,python,arrays,csv,numpy,optimization,Python,Arrays,Csv,Numpy,Optimization,我试图从一个大的csv文件(大约250000行)中填充数组列表,但这需要花费很多时间。我确信有一种方法可以让这个过程更快,但我不知道怎么做 代码如下: import csv import numpy as np energy = [] ondeIG =[] time =[] envelope = [] with open('file.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader:

我试图从一个大的csv文件(大约250000行)中填充数组列表,但这需要花费很多时间。我确信有一种方法可以让这个过程更快,但我不知道怎么做

代码如下:

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']])

谢谢大家!

要从csv文件导入数据,请查看熊猫,尤其是

在这里,您需要花费大量的时间,因为每次迭代都要重建一个数组(甚至是4个数组)。

np.hstack()
每次都构造一个新的数据数组,这是非常昂贵的。您可以使用append就地更新列表:

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'])

你可以发布你的csv的前几行是什么样子的吗?你可以使用pandas更快地加载它