我在python中有以下代码,我想我需要一些帮助来优化它
我正在阅读几百万行数据,但如果每行一个坐标不符合我的标准,那么就扔掉大部分数据。
代码如下:
def loadFargoData(dataname, thlimit):
temp = np.loadtxt(dataname)
return temp[ np.abs(temp[:,1]) < thlimit ]
我把它编码为好像它是C型代码,当然在python中,现在这很疯狂 我可以以某种方式抛弃我的临时物体吗?或者蟒蛇群体可以帮助我的其他优化是什么?
答案 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的文档,以了解正确读取文件所需的函数参数(标题,分隔符等)。