numpy Scipy处理大数据

qoefvg9y  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(133)

我有一个只包含一列的数据集(Pandas系列). Dataset为.dat文件,约有200万行和1列(166 MB)。使用 pd.read_csv 阅读此数据大约需要7-8分钟。此数据是一个信号,需要进行处理(使用scipy.signal)。所以当我处理数据时,我得到了MemoryError。有没有办法加快文件的加载速度并提高其处理速度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
rt4zxlrg

rt4zxlrg1#

'\r\n'设置为分隔符,这意味着(如果我理解正确的话)每一行等于一个新列,这意味着最终将有数百万列,而squeeze参数没有任何作用。
不要设置sep参数(保留其默认值):换行符将分隔记录,然后squeeze将其返回到Series中。

相关问题