数据文件我有一个大小为[8192x29]的数据框,我想计算每一列的fft,但在此之前,我需要将每一列(8192 x 1)重塑为(64 x 128)。所以对于一列来说,它是这样的
data_1 = np.array(data_all.iloc[:,16])
data_1 = np.reshape(data_1,(64,128))
data_standarized = preprocessing.scale(data_1)
fft = fftpack.fft(data_standarized)
现在我必须对所有的数据应用相同的,因此 "for循环 "为所有的列,并计算fft分离。我似乎想不出一个有效的方法来做到这一点,我的for循环如下所示
data_k = np.zeros((64,3712))
for i in range(0,data_size[1]):
data_k[0:63, i:i+127]= data_all[:,i].reshape(64,128)
然后,我需要另一个for循环来得到64×128矩阵一个一个地应用fft。在MATLAB中,如果我们有结构,我们可以用一个for循环来做,每个单元格都包含输出。我们可以在Python中做这样的事情吗?
fftpack.fft
默认情况下会应用于最后一个轴,但你也可以指定任何其他轴。
data_new = data.reshape(64, 128, 29)
data_fft = fftpack.fft(data_new, axis=1)
如果你愿意的话,你可以再次重塑形状。data_fft.reshape(64, -1)
.