Python:numpy数组列表上的numpy fftn

2024-09-30 16:35:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试高效地np.fft.fftn和2D numpy数组的数组。V0是一个形状(nvar,nx,ny)的数组,我想从V0的第一维对每个2D数组执行FFT。我在这里要做的是比较V0的第一个轴上的迭代,并将其与对整个多维数组执行FFT的天真尝试进行比较:

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

那么我怎样才能正确地做呢?在


Tags: infftnumpynprandom数组形状nx
2条回答

V0fftdirect = np.fft.fft2(V0)完成了任务:

In [93]: import numpy as np

In [94]: V0 = np.random.random((3,128,128))

In [95]: V0fftfor = []

In [96]: for i in xrange(V0.shape[0]):
    ...:     V0fftfor.append(np.fft.fftn(V0[i]))
    ...:     

In [97]: V0fftdirect = np.fft.fft2(V0)

In [98]: np.amax(np.abs(V0fftfor - V0fftdirect))
Out[98]: 0.0
  • 在for循环中将np.fft.fftn替换为np.fft.fft2。在
  • 指定fftn轴:numpy.fft.fftn(a, s=None, axes=(-2, -1), norm=None)

相关问题 更多 >