Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何有效地分割时间序列数据集?_Python_Python 3.x_Time Series_Conv Neural Network - Fatal编程技术网

Python 如何有效地分割时间序列数据集?

Python 如何有效地分割时间序列数据集?,python,python-3.x,time-series,conv-neural-network,Python,Python 3.x,Time Series,Conv Neural Network,因此,我是Python的初学者,最近一直在从事一个项目,该项目为患者提供了一个时间序列ECG值。对于每个患者,ECG阵列中大约有3000000个值,其中6000个批次代表一分钟的记录。我还有另一个名为“注释”的数组,用于标记患者是否在特定时间发生呼吸暂停事件。因此,我必须基本上将300万个列表分成一个列表,每个列表的大小为6000,我必须将其作为输入传递给一个1D卷积神经网络,y_序列作为该特定分钟的注释。我要为35个病人做这个手术。我尝试编写一个代码,使用以下代码将大列表拆分为列表列表 chu

因此,我是Python的初学者,最近一直在从事一个项目,该项目为患者提供了一个时间序列ECG值。对于每个患者,ECG阵列中大约有3000000个值,其中6000个批次代表一分钟的记录。我还有另一个名为“注释”的数组,用于标记患者是否在特定时间发生呼吸暂停事件。因此,我必须基本上将300万个列表分成一个列表,每个列表的大小为6000,我必须将其作为输入传递给一个1D卷积神经网络,y_序列作为该特定分钟的注释。我要为35个病人做这个手术。我尝试编写一个代码,使用以下代码将大列表拆分为列表列表

chunks = [data[x:x+6000] for x in range(0, len(data), 6000)]
然而,对于一个患者来说,这需要很多时间。有没有更好的方法处理我的数据集?也就是说,我如何将我的35个列表(每个患者1个)转换为每分钟的列表,这将作为我的X_序列,并为所有35个患者生成注释列表,这将作为我的Y_序列。
谢谢你

对于这种大小的数据,我强烈建议你考虑使用
numpy
。我猜你的神经网络库可能会使用
numpy
,因此这会很好地进行交互,但由于你没有说你正在使用什么库,我无法确定

如果您的数据位于
numpy
数组中,那么您可以每分钟将该数组的切片传递到网络,而无需预先计算它们,方法如下

用于范围内的启动(0,长度(数据),6000):
out=conv\u neural\u net(数据[开始:开始+6000])
#在这里对输出执行任何操作
numpy
用于在大型数字数据集上执行数字运算,速度比原始Python快得多,因此对于您的情况来说绝对值得