Python快速数据读入和切片

时间:2017-04-12 12:21:35

标签: python arrays optimization

我在python中有以下代码,我想我需要一些帮助来优化它 我正在阅读几百万行数据,但如果每行一个坐标不符合我的标准,那么就扔掉大部分数据。
代码如下:

def loadFargoData(dataname, thlimit):
    temp = np.loadtxt(dataname)
    return temp[ np.abs(temp[:,1]) < thlimit ]

我把它编码为好像它是C型代码,当然在python中,现在这很疯狂 我可以以某种方式抛弃我的临时物体吗?或者蟒蛇群体可以帮助我的其他优化是什么?

1 个答案:

答案 0 :(得分:1)

pandas中包含的数据阅读器可能会加快您的脚本速度。它的读取速度比numpy快。 Pandas会产生一个数据帧对象,很容易作为一个numpy数组查看(如果愿意的话也很容易转换),这样你就可以在numpy中执行你的条件(在你的问题中看起来效率很高)。

import pandas as pd

def loadFargoData(dataname, thlimit):
    temp = pd.read_csv(dataname)  # returns a dataframe
    temp = temp.values            # returns a numpy array
    # the 2 lines above can be replaced by   temp = pd.read_csv(dataname).values
    return temp[ np.abs(temp[:,1]) < thlimit ]

您可能需要查看Pandas的文档,以了解正确读取文件所需的函数参数(标题,分隔符等)。