我正在研究脑电图数据集。使用16个电极测量数据集。每个对象数据具有122880个数据点的形状数组。通道1测量7680个数据点,通道2测量7680个数据点,直到16个通道。
7680*16=122800
我已经用
np.reshape(data,(7680,16).
现在我想把每个通道的7680个数据点进一步分成256个数据点。 所以我用
np.reshape(data,(256,-1,16)
让我知道这是一个正确的方法。实际上,我希望在第一频道中使用0-7680元素,而不是在第二频道中使用7680-7680*2,以此类推。
现在如果我只看第一频道,它有7680个点,我想把这7680个点重塑成30个测试,比如每个测试有256个元素
我错了。当您将维度设置为
(256,-1,16)
时,numpy将为您进行除法,并将-1
替换为30
。注意,这可能只发生在负整数上(我用-1
、-2
、-3
测试)。所以呢将返回一个大小为
256 x 30 x 16
的数组,是的,完成了。你知道吗编辑: 对于您的数据,如前所述:
正确的重塑方法是
然后将7680个样本分成30个试验,每个通道包含256个样本。很简单:
如果要将256个样本划分为一组样本,请执行以下操作:
请记住始终从外到内,首先放置簇的数目,然后放置簇的大小。你知道吗
EDIT2:你说过你想要一组30个试验,每个试验包含一个2D数组,其中16列作为16个电极,256行作为256个点在2秒内。你知道吗
代码如下:
要使用单行代码:
说明:在python重塑数组之前,它首先将其展平(如果还没有)。然后将每个元素逐个放入一个新数组。你知道吗
默认情况下,
order='C'
,这意味着它将从上到下逐行放置元素(与我们的写入和读取方式相同)。而order='F'
意味着它将从左到右逐列地放置元素。你知道吗你的数据来自第一频道7680点。这就是我使用
order='F'
的原因。你知道吗相关问题 更多 >
编程相关推荐