鱼C论坛

 找回密码
 立即注册
查看: 1022|回复: 7

[已解决]关于python使用过程中报错的处理方法——抱歉我说不清楚,请看图

[复制链接]
发表于 2020-5-23 15:58:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
麻烦大家指点迷津。
程序段:
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 = [12529,        11756,        13514,        14135,        17894,        12950        ,11722,        13371,        14160]
# 平稳化
 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'
最佳答案
2020-5-23 16:02:58
本帖最后由 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()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-23 16:02:58 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-23 16:04:11 | 显示全部楼层
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
这是所有的错误类型,供参考


是这个意思吗...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 16:09:41 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-23 16:15 编辑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-23 16:52:17 | 显示全部楼层
Twilight6 发表于 2020-5-23 16:02
这个报错了
改成这样即可:

非常感谢你的回复,认真学习中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-23 17:27:39 | 显示全部楼层
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 = [12529,        11756,        13514,        14135,        17894,        12950        ,11722,        13371,        14160]
# 平稳化

 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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 18:03:07 | 显示全部楼层
明月小仙 发表于 2020-5-23 17:27
你好,我想实现傅里叶预测ts数据的走向,然后现在遇到了瓶颈,请问能指导一下吗?

抱歉 我也是刚刚接触 numpy 和 pandas 还没深入 帮不了多少哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-31 10:41:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 22:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表