简体   繁体   中英

How do I apply FFT on a 3D Array

I have a 3D array that has the shape (features, timestep, samples). I would like to apply the numpy fft function on each feature for the length of timestep for each sample. I have this, but I am uncertain whether this is the best way or whether there needs to be a loop to iterate through each sample.

import numpy as np
x_train_fft = np.fft.fft(x_train, axis=0) #selected axis 0 as this is the axis of features

Looks like this was the way to do it

X_transform_FFT =[]
for i in range(x_train.shape[0]):
    f  = abs(np.fft.fft(x_train[i, :, :], axis = 1))
    X_transform_FFT.append(f)
    np.asarray(X_transform_FFT)
print(X_transform_FFT)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM