Python快速数据读入和切片

Python快速数据读入和切片,python,arrays,optimization,Python,Arrays,Optimization,我有以下python代码,我想我需要一些帮助来优化它。 我读取了几百万行数据,但如果每行一个坐标不符合我的标准,我就会扔掉大部分数据。 代码如下: def loadFargoData(dataname, thlimit): temp = np.loadtxt(dataname) return temp[ np.abs(temp[:,1]) < thlimit ] def loadFargoData(数据名,thlimit): temp=np.loadtxt(数据名) 返回

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

def loadFargoData(dataname, thlimit):
    temp = np.loadtxt(dataname)
    return temp[ np.abs(temp[:,1]) < thlimit ]
def loadFargoData(数据名,thlimit):
temp=np.loadtxt(数据名)
返回温度[np.abs(温度[:,1])
我将其编码为C型代码,当然,在python中,这是非常慢的。

我可以扔掉我的临时对象吗?或者Pythonian种群还能帮我做什么优化呢?

pandas中包含的数据读取器可能会加快脚本的速度。它读起来比numpy快。Pandas将生成一个dataframe对象,很容易作为numpy数组查看(如果愿意,也很容易转换),因此您可以在numpy中执行您的条件(在您的问题中,这看起来足够有效)

将熊猫作为pd导入
def loadFargoData(数据名,限制):
temp=pd.read_csv(dataname)#返回一个数据帧
temp=temp.values#返回一个numpy数组
#上面的两行可以替换为temp=pd.read\u csv(dataname.values)
返回温度[np.abs(温度[:,1])

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

可能是这个问题的重复:@Zefick:谢谢链接。事实上,如果有可能构造模仿数学运算的正则表达式,如\ge。。。有可能吗?很抱歉,我很晚才接受你的回答,我正忙于另一个项目。事实上,熊猫阅读器工作得很好,我的数据速度提高了15-16倍。
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 ]