# [SciPy-user] FFTN usage

Stefan van der Walt stefan@sun.ac...
Fri Feb 8 19:45:25 CST 2008

```Hi Brad

On Fri, Feb 08, 2008 at 05:33:02PM -0800, Brad Malone wrote:
> So let's say I have a grid of values with [i,j,k] where i,j,k each go
> from 0 to 3. How do I compute the Fourier transform of this grid using
> fftn?  Is the first argument a 1D array that goes through my 3D array
> along some standard path (last column goes fastest, or something like
> this?), or is the first argument actually a 3D array itself?  I looked
> at the documentation but it wasn't clear to me.

I assume your values are packed into an array of shape (4,4,4).
`fftn` can be seen as the equivalent of running a one-dimensional FFT
along every axis of that array, i.e. along rows, columns and depth.
You can further adjust the working by specifying keywords:

np.fft.fftn(a, s=None, axes=None)
fftn(a, s=None, axes=None)

The n-dimensional fft of a. s is a sequence giving the shape of the input
an result along the transformed axes, as n for fft. Results are packed
analogously to fft: the term for zero frequency in all axes is in the
low-order corner, while the term for the Nyquist frequency in all axes is
in the middle.

If neither s nor axes is specified, the transform is taken along all
axes. If s is specified and axes is not, the last len(s) axes are used.
If axes are specified and s is not, the input shape along the specified
axes is used. If s and axes are both specified and are not the same
length, an exception is raised.

Btw, this docstring was obtained by typing

import numpy as np
np.fft.fftn?

in IPython.

Regards
Stéfan
```