有没有办法加快一些数据处理的速度



我有一个大的数据表(大约 3100000 行和 6 列(,我想提取一些数据子集并重新排列它们。

我尝试了以下代码:

tab=[]
tab.append(np.array(['Channel', 'Edge', 'Time', 'Sweep', 'Tag', 'DataLost']))
incl=[]
incl.append(np.array(['Mult', 'x1', 'x2', 'y1', 'y2']))
for i in range (0,max):
B=tab[tab[:,3]==str(i),:]
C1=B[B[:,0]==str(Voie_Stop_1),2]
C2=B[B[:,0]==str(Voie_Stop_2),2]
if len(C1)%2 ==0 and len(C2)%2 ==0 and len(C1) ==len(C2) :
    nb_fragments=len(C1)/2 
    C1=C1.reshape(int(nb_fragments), 2)
    C2=C2.reshape(int(nb_fragments), 2)
    C1C2=np.concatenate((C1,C2), axis=1)
    ligne=np.insert(C1C2, 0, nb_fragments,axis=1)
    ligne=np.array(ligne)
    for j in range(int(nb_fragments)):
        incl.append(ligne[j])
        ligne=C1C2[0]
        unSTOP.append(ligne)

它正在做我想做的事,但非常慢(5s 使 i+100(......为了填充我的标签,我使用函数"append",因为这个论坛上的某人告诉我它比"连接"更快,而且在我的代码的第一部分确实如此(此处未显示(......你能帮帮我吗? ???(我对python很陌生...

根据我的经验,在Python中操作大型数据集的最快方法是使用pandas。 在 pandas 中,您可以将数据导入到称为数据帧的类似表的结构中。然后,您可以使用 API 快速对数据执行操作。

根据数据的存储方式(csv,python字典,sql等(,您可以使用pandas IO方法快速轻松地将数据拉入内存:

import pandas as pd
df = pd.read_csv('/path/to/my/data.csv')

df是您的数据框。 然后,您可以非常快速地过滤、应用自定义函数等。

如果您可以发布数据示例以及有关如何提取和重新排列数据的具体信息,我很乐意为您编写一个示例函数来帮助完成工作。

最新更新