Discharge/DischargeDatabase/Examples/22813/includes/analysis/Magnetics/0411Spectrograms_TO.ON/fftshift.py

from numpy.core import asarray, concatenate,swapaxes
import numpy.core.numerictypes as nt


def fftshift(x,axes=None):

    tmp = asarray(x)
    if axes is None:
        axes = range(tmp.ndim)
    elif isinstance(axes, (int, nt.integer)):
        axes = (axes,)
    y = tmp
    for k in axes:
        n = tmp.shape[k]
    p2 = (n+1)//2
    y = swapaxes(y,0,k)

    y = concatenate((y[p2:,...], y[:p2,...]))
    y = swapaxes(y,0,k)

    return y