如何使这个过程更快地工作?

2024-05-15 07:51:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个大的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']])

谢谢你!你知道吗


Tags: 文件csvcsvfileimport列表timeasnp
2条回答

np.hstack()每次都构造一个新的ndarray,这很昂贵。可以使用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,特别是^{}

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

相关问题 更多 >