x和y的第一维度必须相同

2024-10-01 17:39:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到值错误:“x和y的第一维度必须相同,但形状(662534,)和(331267,2)” 我的代码

from scipy import signal
import scipy as sy
import scipy.fftpack as syfp
import numpy as np
import matplotlib.pyplot as plt
array = np.loadtxt("file1.csv", dtype = np.float, usecols = (0,1), delimiter = ',')
lenght =len(array)
x = sy.linspace(0.00001, lenght*0.00001, num=lenght)
FFT = syfp.fft(array)
freqs = syfp.fftfreq(array.size, d=(x[1]-x[0]))
plt.subplot(211)
plt.plot(x, array)
plt.subplot(212)
plt.plot(freqs, sy.log10(FFT), 'x')
plt.show()

Tags: importfftplotas错误nppltscipy
1条回答
网友
1楼 · 发布于 2024-10-01 17:39:10

问题是FFT和{}的维数不同,可以使用flatten将FFT格式化为一维:

from scipy import signal
import scipy as sy
import scipy.fftpack as syfp
import numpy as np
import matplotlib.pyplot as plt
array = np.loadtxt("file1.csv", dtype = np.float, usecols = (0,1), delimiter = ',')
lenght =len(array)
x = sy.linspace(0.00001, lenght*0.00001, num=lenght)

FFT = syfp.fft(array)

FFT =  FFT.flatten()
print FFT.shape
freqs = syfp.fftfreq(array.size, d=(x[1]-x[0]))
print freqs.shape
plt.subplot(211)
plt.plot(x, array)
plt.subplot(212)
plt.plot(freqs, sy.log10(FFT), 'x')
plt.show()

相关问题 更多 >

    热门问题