Python属性错误

时间:2014-06-04 04:19:32

标签: python

我是python的新手并且收到此错误,请帮我解决。

AttributeError:' module'对象没有属性' fft2'

程序

import numpy, scipy , pylab , wave , scipy.io.wavfile as wav 
xs = numpy.arange (1,100,.01)
rate , sample = wav.read("pianotest.wav")
fft2=scipy.fft2(sample) # algo applied
bp=fft2[:]  
for i in range(len(bp)): 
if i>=10:bp[i]=0  
ibp=scipy.ifft2(bp) # inverse algo
print"to check dimension"
print("sampling rate = {} Hz, length = {} samples, channels = {}".format(rate,   *sample.shape))
print(sample)

3 个答案:

答案 0 :(得分:3)

取代scipy.fft2 scipy.ifft2,执行scipy.fftpack.fft2numpy.fft.fft2

另外,将import scipy.fftpack2添加到代码顶部,然后一切正常。

有关scipy.fftpack.fft2here的详细信息,请查看here以获取有关numpy.fft.fft2的信息。

以下是您编辑的代码:

import numpy, scipy , pylab , wave, scipy.fftpack, scipy.io.wavfile as wav 
xs = numpy.arange (1,100,.01)
rate , sample = wav.read("pianotest.wav")
fft2=scipy.fftpack.fft2(sample) # algo applied
bp=fft2[:]  
for i in range(len(bp)): 
if i>=10:bp[i]=0  
ibp=scipy.fftpack.ifft2(bp) # inverse algo
print"to check dimension"
print("sampling rate = {} Hz, length = {} samples, channels = {}".format(rate,   *sample.shape))
print(sample)

如果仍然无效,请在命令提示符下键入0.14.0,检查您的scipy版本是否为python -c "import scipy; print scipy.__version__"。如果它未显示0.14.0或更高版本,请升级您的scipy版本。

答案 1 :(得分:1)

看起来你想要这个from SciPy

scipy.fftpack.fft2

或以下from NumPy

numpy.fft.fft2

答案 2 :(得分:1)

根据文档herehere,它应该是numpy.fft.fft2scipy.fftpack.fft2,而不是scipy.fft2