Python numpy在通道和试验中重塑EEG数据

Python numpy在通道和试验中重塑EEG数据,python,numpy,Python,Numpy,我正在研究脑电图数据集。使用16个电极测量数据集。每个主题数据都有一组122880个数据点。通道1测量7680个数据点,通道2测量7680个数据点,直到16个通道为止。 7680*16=122800 我已使用 np.reshape(data,(7680,16). 现在,我希望每个通道中的7680个数据点进一步拆分为256个数据点。 所以我用 np.reshape(data,(256,-1,16) 让我知道这是一个正确的方法。实际上,我希望通道1中的元素为0-7680,而通道2中的元素为768

我正在研究脑电图数据集。使用16个电极测量数据集。每个主题数据都有一组122880个数据点。通道1测量7680个数据点,通道2测量7680个数据点,直到16个通道为止。 7680*16=122800

我已使用

np.reshape(data,(7680,16).
现在,我希望每个通道中的7680个数据点进一步拆分为256个数据点。 所以我用

np.reshape(data,(256,-1,16)
让我知道这是一个正确的方法。实际上,我希望通道1中的元素为0-7680,而通道2中的元素为7680-7680*2,以此类推。
现在,如果我只看第一频道,它有7680个点,我想把这7680个点重塑成30个试验,比如每个试验有256个元素,我错了。当您将尺寸标注为256,-1,16时,numpy将为您进行除法,并将-1替换为30。请注意,这只可能发生在使用-1、-2、-3测试的负整数I上。所以

np.重塑数据,256,-1,16 将返回一个大小为256 x 30 x 16的数组,是的,已完成

编辑: 对于您的数据,如前所述:

前7680个样本代表第一个通道,然后是7680-第二个通道,ets

重塑它的正确方法是

np.Reformedata,167680 然后将7680个样本分成30个试验,每个通道包含256个样本。这很简单:

np.Reformedata,16,30,256 或者干脆 np.Reformedata,16,-1,256作为numpy将为您进行除法 然后,如果要将256个样本划分为某个样本簇,请执行以下操作:

np.Reformedata,16,30,簇的数目,每个簇的大小 请记住,要始终从外到内,首先放置群集的数量,然后放置群集的大小

EDIT2:你说你想要一组30个试验,每个试验包含一个2D数组,其中16列作为16个电极,256行作为256个点,在2秒内

代码如下:

温度=np.Reformedata,7680,16,顺序='F' 输出=温度重塑30256,16 要使用单行代码,请执行以下操作:

数据。重塑7680,16,顺序='F'。重塑30256,16 说明:在python重塑数组之前,如果还没有,它会首先将其展平。然后它将每个元素逐个放入一个新数组

默认情况下,order='C',这意味着它将按照我们写和读的方式从上到下逐行放置元素。而order='F'表示它将从左到右逐列放置元素


您的数据首先来自通道1的7680点。这就是为什么我使用order='F'。

您的意思是从每个通道将7680个数据点更改为256个?有什么标准吗?实际上我想创建2秒的试验,因为采样频率是128Hz,2*128=256,所以将数据拆分为2秒,给我30个试验。重塑仅重塑元素,而不分割元素。所以你必须确保元素的数量保持不变。我有点困惑np。重塑数据256,-1,16将生成一个大小为256,30,16的数组。这导致了122880更让我困惑的事情,无论数据的形状是256,30,16还是30256,16@TalhaAnwar数据是如何收集和整理的?这里是数据链接,其实我没有太多的信息。我犯了错误,有些事情现在已经清楚了。我希望每个试验有16列,每列有256个点。如果我们必须分两步进行,例如数据。重塑167680,然后进行转置,现在形状是7680,16,现在我必须将其重塑为30个试验,所以现在我必须进行数据。重塑30256,16我正确吗?