fftshift не работает в scipy - PullRequest
       9

fftshift не работает в scipy

0 голосов
/ 13 августа 2010

Я использую последнюю версию numpy / scipy.
Следующий скрипт не работает:

import numpy as np  
import matplotlib.pyplot as plt  
from scipy.fftpack import fft, fftshift, fftfreq  
hn= np.ones(10)  
hF = fft(hn,1024)  
shifted = fftshift(hF)  

выдает следующее сообщение об ошибке:

Traceback (most recent call last):  
  File "D:\deleteme\New3.py", line 6, in <module>  
    shifted = fftshift(hF)  
  File "C:\Python26\lib\site-packages\numpy\fft\helper.py", line 40, in fftshift  
    y = take(y,mylist,k)  
  File "C:\Python26\lib\site-packages\numpy\core\fromnumeric.py", line 103, in take  
    return take(indices, axis, out, mode)  
TypeError: array cannot be safely cast to required type  

РЕДАКТИРОВАТЬ : я нашел проблему. Мой интерпретатор python вызывался неявно (через настройки редактора) с параметром -Qnew. Это, очевидно, нарушает код scipy. Спасибо всем, кто откликнулся!

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Вы должны заполнить отчет об ошибке на http://www.scipy.org/BugReport

0 голосов
/ 13 августа 2010

Работает нормально с моей настройкой, если в текущей версии это ошибка, попробуйте установить более старую копию и заполнить отчет.

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.fftpack import fft, fftshift, fftfreq
>>> hn= np.ones(10)
>>> hF = fft(hn,1024)
>>> shifted = fftshift(hF)
>>> shifted
array([ 0.00000000+0.j        ,  0.00084688+0.03066325j,
        0.00338468+0.06122841j, ...,  0.00760489-0.09159769j,
        0.00338468-0.06122841j,  0.00084688-0.03066325j])


>>> import sys
>>> sys.version
'2.6.4 (r264:75706, Jan 22 2010, 16:41:54) [MSC v.1500 32 bit (Intel)]'
>>> import numpy
>>> numpy.version.version
'1.3.0'
>>> import scipy
>>> scipy.version.version
'0.7.1'
>>> import matplotlib
>>> matplotlib.__version__
'0.99.1'
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...