[Numpy-discussion] can't take FFT of ndarray

Charles R Harris charlesr.harris at gmail.com
Fri Mar 6 17:44:32 EST 2009


On Fri, Mar 6, 2009 at 3:36 PM, charles reid <charlesreid1 at gmail.com> wrote:

> Hi there -
>
> I've imported some data from a file, and it's in a list called mixfrac.
> I'd like to take the Fourier transform of the data, but when I try to take
> the FFT of the list, I get this error:
>
> ---------------------------------------------------------------------------
> TypeError                                 Traceback (most recent call last)
>
> /Users/charles/apriori/read.py in <module>()
> ----> 1
>       2
>       3
>       4
>       5
>
> /Library/Python/2.5/site-packages/numpy-1.3.0.dev5825-py2.5-macosx-10.3-i386.egg/numpy/fft/fftpack.pyc
> in fft(a, n, axis)
>     105     """
>     106
> --> 107     return _raw_fft(a, n, axis, fftpack.cffti, fftpack.cfftf,
> _fft_cache)
>     108
>     109
>
> /Library/Python/2.5/site-packages/numpy-1.3.0.dev5825-py2.5-macosx-10.3-i386.egg/numpy/fft/fftpack.pyc
> in _raw_fft(a, n, axis, init_function, work_function, fft_cache)
>      64     if axis != -1:
>      65         a = swapaxes(a, axis, -1)
> ---> 66     r = work_function(a, wsave)
>      67     if axis != -1:
>      68         r = swapaxes(r, axis, -1)
>
> TypeError: array cannot be safely cast to required type
>
>
> so I convert to an array and run fft(mixfracarray).
>
> mixfracarray = array(mixfrac)
> fft(mixfracarray)
>
> whereupon I recieve the error
>
> ---------------------------------------------------------------------------
> TypeError                                 Traceback (most recent call last)
>
> /Users/charles/apriori/read.py in <module>()
> ----> 1
>       2
>       3
>       4
>       5
>
> /Library/Python/2.5/site-packages/numpy-1.3.0.dev5825-py2.5-macosx-10.3-i386.egg/numpy/fft/fftpack.pyc
> in fft(a, n, axis)
>     105     """
>     106
> --> 107     return _raw_fft(a, n, axis, fftpack.cffti, fftpack.cfftf,
> _fft_cache)
>     108
>     109
>
> /Library/Python/2.5/site-packages/numpy-1.3.0.dev5825-py2.5-macosx-10.3-i386.egg/numpy/fft/fftpack.pyc
> in _raw_fft(a, n, axis, init_function, work_function, fft_cache)
>      64     if axis != -1:
>      65         a = swapaxes(a, axis, -1)
> ---> 66     r = work_function(a, wsave)
>      67     if axis != -1:
>      68         r = swapaxes(r, axis, -1)
>
> TypeError: array cannot be safely cast to required type
>
> This is strange, because I can run fft(array([0,0,0,1,1,1])), or
> fft([0,0,0,1,1,1]), perfectly fine.  This is passing an array and a list,
> respectively.
>
> type(mixfrac) is list and size(mixfrac) is 100; type(mixfracarray) is
> ndarray, and mixfracarray.shape is (100,).  I've also tried taking the FFT
> of the transpose of mixfracarray, but that doesn't work either.
>
> I'm stumped - why can't I run an FFT on either mixfrac or mixfracarray?
>

After you convert to an array what is the array type? I suspect an object in
there somewhere.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090306/601ed4d1/attachment.html>


More information about the NumPy-Discussion mailing list