J'essaie efficacement np.fft.fftn
et tableau de tableaux numpy 2D. V0
est un tableau de la forme (nvar,nx,ny)
, et je voudrais effectuer FFT sur chaque tableau 2D de la première dimension de V0
. Ce que j'ai essayé de faire ici est de comparer entre itération sur le premier axe de V0
, et le comparer avec une tentative naïve de faire une FFT sur l'ensemble de tableau multidimensionnel:Python: numft fftn sur une liste de tableau numpy
In [45]: import numpy as np
In [46]: V0 = np.random.random((3,128,128))
In [47]: V0fft = []
In [48]: for i in xrange(V0.shape[0]):
...: V0fft.append(np.fft.fftn(V0[i]))
...:
In [49]: V0fftdirect = np.fft.fftn(V0)
In [50]: np.amax(np.abs(V0fft - V0fftdirect))
Out[50]: 16366.207818488827
Alors, comment puis-je le faire correctement?
Essayez en spécifiant l'axe 'numpy.fft.fftn (a, s = Aucun, axes = 0, norme = Aucune) ' – Chr
Essayer ceci' V0fftdirect = np.fft.fftn (V0, s = Aucun, axes = 0, norme = Aucun) 'mène à une erreur:' TypeError: 'l'objet' numpy.int64 'n'est pas itérable' – Ohm
Désolé , 'axes' devrait être une séquence:' numpy.fft.fftn (a, s = Aucun, axes = (0), norm = None) ' – Chr