关于python使用过程中报错的处理方法——抱歉我说不清楚,请看图
麻烦大家指点迷津。程序段:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 函数功能:将频域数据转换成时序数据
# bins为频域数据,n设置使用前多少个频域数据,loop设置生成数据的长度
def fft_combine(bins, n, loops=1):
length = int(len(bins) * loops)
data = np.zeros(length)
index = loops * np.arange(0, length, 1.0) / length * (2 * np.pi)
for k, p in enumerate(bins[:n]):
if k != 0 : p *= 2 # 除去直流成分之外, 其余的系数都 * 2
data += np.real(p) * np.cos(k*index) # 余弦成分的系数为实数部分
data -= np.imag(p) * np.sin(k*index) # 正弦成分的系数为负的虚数部分
return index, data
if __name__ == '__main__':
ts =
# 平稳化
ts_log = np.log(ts)
ts_diff = ts_log.diff(1)
ts_diff = ts_diff.dropna()
print(fy[:10]) # 显示前10个频域数据
fy = np.fft.fft(ts_diff)
conv1 = np.real(np.fft.ifft(fy)) # 逆变换
index, conv2 = fft_combine(fy / len(ts_diff), int(len(fy)/2-1), 1.3) # 只关心一半数据
plt.plot(ts_diff)
plt.plot(conv1 - 0.5) # 为看清楚,将显示区域下拉0.5
plt.plot(conv2 - 1)
plt.show()
报错信息:
Traceback (most recent call last):
File "C:/Users/lenovo/Desktop/lihaile.py", line 25, in <module>
ts_diff = ts_log.diff(1)
AttributeError: 'numpy.ndarray' object has no attribute 'diff'
本帖最后由 Twilight6 于 2020-5-23 16:13 编辑
ts_diff = ts_log.diff(1)
这个报错了
改成这样即可:
ts_log = np.log(ts)
ts_diff = np.diff(ts_log)
df = pd.DataFrame(ts_diff)
ts_diff = df.dropna()
try: #检测是否出现异常范围
a=str(input('请输入您要导入所属文件夹的文件(不用输入后缀名扩展名):'))
b=open(a+'.txt','w')
print(b.write('小甲鱼'))
sum=1+'2'
b.close()
except (OSError,TypeError): #如果出现(异常),就这样处理:
print('类型出错啦')
finally: #就算出错,也会执行的代码
b.close()
写了个例子,内有注释,有问题请继续追问~~
try: #检测是否出现异常范围
except (OSError,TypeError): #如果出现(异常),就这样处理:
finally: #就算出错,也会执行的代码
https://fishc.com.cn/forum.php?m ... peid%26typeid%3D403
这是所有的错误类型,供参考
是这个意思吗... 本帖最后由 Twilight6 于 2020-5-23 16:15 编辑
{:10_319:} Twilight6 发表于 2020-5-23 16:02
这个报错了
改成这样即可:
非常感谢你的回复,认真学习中。
Twilight6 发表于 2020-5-23 16:02
这个报错了
改成这样即可:
你好,我想实现傅里叶预测ts数据的走向,然后现在遇到了瓶颈,请问能指导一下吗?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# bins为频域数据,n设置使用前多少个频域数据,loop设置生成数据的长度
def fft_combine(bins, n, loops=1):
length = int(len(bins) * loops)
data = np.zeros(length)
index = loops * np.arange(0, length, 1.0) / length * (2 * np.pi)
for k, p in enumerate(bins[:n]):
if k != 0 : p *= 2 # 除去直流成分之外, 其余的系数都 * 2
data += np.real(p) * np.cos(k*index) # 余弦成分的系数为实数部分
data -= np.imag(p) * np.sin(k*index) # 正弦成分的系数为负的虚数部分
return index, data
if __name__ == '__main__':
ts =
# 平稳化
ts_log = np.log(ts)
ts_diff = np.diff(ts_log)
df = pd.DataFrame(ts_diff)
ts_diff = df.dropna()
fy = np.fft.fft(ts_diff)
print(fy[:10]) # 显示前10个频域数据
conv1 = np.real(np.fft.ifft(fy)) # 逆变换
index, conv2 = fft_combine(fy / len(ts_diff), int(len(fy)/2-1), 1.3) # 只关心一半数据
plt.plot(ts_diff)
plt.plot(conv1 - 0.5) # 为看清楚,将显示区域下拉0.5
plt.plot(conv2 - 1)
plt.show() 明月小仙 发表于 2020-5-23 17:27
你好,我想实现傅里叶预测ts数据的走向,然后现在遇到了瓶颈,请问能指导一下吗?
抱歉 我也是刚刚接触 numpy 和 pandas 还没深入 帮不了多少哈哈 {:5_106:}
页:
[1]