代码之家  ›  专栏  ›  技术社区  ›  Alex

大数据的scipy处理

  •  -1
  • Alex  · 技术社区  · 8 年前

    我有一个只包含一列的数据集(pandas系列)。数据集是.dat文件,大约有2000 000行和1列(166MB)。使用读取此数据 PD.READ_csv公司 大约需要7-8分钟。此数据是一个信号,需要处理(使用 scipy.signal )所以当我处理数据时,我会得到内存错误。有没有办法加快文件的加载速度 提高处理速度 ( scipy.signal.ellip )绕过记忆问题?提前谢谢你。 加载数据:

    data = pd.read_csv('C:/Users/HP/Desktop/Python and programming/Jupyter/Filter/3200_Hz.dat', 
    sep='\r\n', header=None, squeeze=True)
    

    数据处理(也需要大约7分钟):

    b, a = signal.ellip(4, 5, 40, Wn, 'bandpass', analog=False)
    output = signal.filtfilt(b, a, data)
    #after that plotting 'output' with plt
    

    输入数据示例:

    6954
     25903
     42882
     17820
      3485
    -11456
      4574
     34594
     25520
     26533
      9331
    -22503
     14950
     30973
     23398
     41474
      -860
     -8528
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   9769953    8 年前

    你设置 '\r\n' 作为分隔符,这意味着(如果我理解正确的话)每一行等于一个新列。这意味着你最终会有上百万的专栏, squeeze 争论不起作用。

    不要设置 sep 参数(保留默认值):换行符将分隔记录,并且 挤压 然后将其返回到 Series .