'''1.数据平滑:通常包含降噪、拟合等操作。降噪的功能在于去除额外的影响因素,拟合的目的在于数学模型化,可以通过更多的数学方法识别曲线的特征。

2.绘制两支股票的收益率

---收益率 =(后一天的收盘价 - 前一天的收盘价)/前一天的收盘价'''

importmatplotlib.pyplot as mpimportnumpy as npimportdatetime as dtimportmatplotlib.dates as md#日期转化函数

defdmy2ymd(dmy):#把dmy格式的字符串转化成ymd格式的字符串

dmy = str(dmy, encoding='utf-8')

d= dt.datetime.strptime(dmy, '%d-%m-%Y')

d=d.date()

ymd= d.strftime('%Y-%m-%d')returnymd

dates, bhp_closing_prices=\

np.loadtxt('./da_data/bhp.csv', delimiter=',', usecols=(1, 6), unpack=True,

dtype='M8[D], f8', converters={1: dmy2ymd}) #converters为转换器,运行时先执行,其中1表示时间所在的列索引号

vale_closing_prices=\

np.loadtxt('./da_data/vale.csv', delimiter=',', usecols=(6,), unpack=True,

dtype='f8')#绘制收盘价折线图

mp.figure('Profits', facecolor='lightgray')

mp.title('Profits', fontsize=18)

mp.xlabel('date', fontsize=12)

mp.ylabel('profits', fontsize=12)

mp.tick_params(labelsize=10)

mp.grid(linestyle=':')#设置x轴的刻度定位器,使之更适合显示日期数据

ax =mp.gca()#以周一作为主刻度

ma_loc = md.WeekdayLocator(byweekday=md.MO)#次刻度,除周一外的日期

mi_loc =md.DayLocator()

ax.xaxis.set_major_locator(ma_loc)

ax.xaxis.set_major_formatter(md.DateFormatter('%Y-%m-%d'))

ax.xaxis.set_minor_locator(mi_loc)#日期数据类型转换,更适合绘图

dates =dates.astype(md.datetime.datetime)#计算两支股票的收益率

bhp_returns = np.diff(bhp_closing_prices) / bhp_closing_prices[:-1]

vale_returns= np.diff(vale_closing_prices) / vale_closing_prices[:-1]#绘制两支股票的收益率曲线

mp.plot(dates[:-1], bhp_returns, color='orangered', label='BHP_return', alpha=0.3)

mp.plot(dates[:-1], vale_returns, color='dodgerblue', label='VALE_return', alpha=0.3)#mp.hlines(0, md.date2num(dates[0]), md.date2num(dates[-1]), colors='red')#使用卷积对两组数据降噪

kernel = np.hanning(8) #随机生成一个卷积核(对称的)

kernel /=kernel.sum()

bhp_returns_convolved= np.convolve(bhp_returns, kernel, 'valid')

vale_returns_convolved= np.convolve(vale_returns, kernel, 'valid')#mp.plot(dates[7:-1], bhp_returns_convolved, color='orangered', label='bhp_returns_convolved')#mp.plot(dates[7:-1], vale_returns_convolved, color='dodgerblue', label='vale_returns_convolved')

#对两条曲线执行多项式拟合

days = dates[7:-1].astype('M8[D]').astype('i4')

bhp_P= np.polyfit(days, bhp_returns_convolved, 3)

vale_P= np.polyfit(days, vale_returns_convolved, 3)#绘制多项式曲线

bhp_y =np.polyval(bhp_P, days)

vale_y=np.polyval(vale_P, days)

mp.plot(dates[7:-1], bhp_y, color='greenyellow', label='bhp_y')

mp.plot(dates[7:-1], vale_y, color='pink', label='vale_y')#求曲线的交点坐标

P = np.polysub(bhp_P, vale_P) #求两个多项式函数的差函数的P值

xs =np.roots(P)

y=np.polyval(bhp_P, xs)

result= xs.astype('i4').astype('M8[D]')

mp.scatter(result, y, s=80, color='red', zorder=3)

mp.tight_layout()

mp.legend()#自动格式化x轴日期的显示格式(以最合适的方式显示)

mp.gcf().autofmt_xdate()

mp.show()

python数据平滑处理,numpy之数据平滑处理相关推荐

  1. 如何用matlab读取npz文件,Python Numpy中数据的常用的保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  2. python怎么读取txt文件数据保存数组中-Python Numpy中数据的常用的保存与读取方法...

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  3. python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...

  4. numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy

    文章申明 文章作者:梁斌伟 责任编辑:郭德真 微信编辑:玖蓁 本文转载自公众号 实战统计学 (ID:statrcn) 原文链接:可视化图解Python科学计算包NumPy 作者:梁斌伟 编者按: 你真 ...

  5. python读txt文件 数组-python将txt等文件中的数据读为numpy数组的方法

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...

  6. python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  7. 下载MNIST数据集并使用python将数据转换成NumPy数组(源码解析)

    下载MNIST数据集并使用python将数据转换成NumPy数组 首先来分析init_mnist函数 接下来继续分析load_mnist函数 实现数据集转换的python脚本的代码 显示MNIST图像 ...

  8. python导入excel模块_Excel到python第一章python利用pandas和numpy模块导入数据

    原博文 2019-08-29 21:18 − import numpy as np import pandas as pd # 导入数据 # 读取csv数据 df = pd.read_csv(open ...

  9. python numpy读取数据_Python数据分析之numpy学习(一)

    文|刘顺祥 Python是一门不错的动态语言,其应用的领域非常广泛,如web开发.Linux运维.数据挖掘.机器学习.爬虫.推荐系统等.在学完<廖雪峰Python2.7教程>感觉受益匪浅, ...

  10. c语言转换为python语言_使用C语言中的数据缓冲区和NumPy数组之间的转换来为Python接口打包C程序的最佳方法是什么?...

    基本上有三种方式: >从图像缓冲区复制到NumPy阵列,反之亦然.当给定C/C++图像时,创建NumPy阵列并复制数据,当给定NumPy阵列时,创建C/C++图像并复制数据. > NumP ...

最新文章

  1. android 简易定时器
  2. 关键字static在C和C++中的区别
  3. flask静态html
  4. 程序员常对产品经理说的话
  5. [转载]一个图形爱好者的书架/白话说学计算机图形学
  6. python进行数据可视化时,中文是方块显示
  7. [jQuery] 速记一の屏蔽鼠标右键监听鼠标Event
  8. matlab解决高等数学和线性代数的部分问题
  9. 计算机远程桌面连接软件,windows7远程桌面连接软件 提取自最新windows7,可运行于XP...
  10. mysql计算同比和环比的区别_MySQL实践之同比环比
  11. js 字符串 转换 html标签,js 字符串转html标签
  12. 今日接手一个项目,服务器重启后,mysql启动失败
  13. 八、Sentinel.conf 配置文件详细介绍
  14. 如何使用CC攻击中小型网站?
  15. python 汉字与拼音的转换--pypinyin
  16. 第一个python自动化脚本
  17. 酸菜鱼用什么鱼最好吃
  18. 大数据培训有前途吗,大数据工资一般多少?
  19. 「go-micro」学习笔记1——Micro 与 Go-Micro
  20. 利用pandoc把latex文件转换为word的基本操作

热门文章

  1. 二、简单易用的Python代码加密方法(基于Cython)
  2. LINUX基本操作(实验1)
  3. 广义线性模型(GLMs)及算法介绍
  4. Paper--3d reconstruction:Photo Tourism: Exploring Photo Collections in 3D
  5. 计算机中三大总线:地址总线、数据总线、控制总线
  6. diskgenius创建efi分区_找不到引导分区 启动分区不存在 怎么创建efi系统分区
  7. 两个音轨合并_技能!如何合并两个音频文件?
  8. 如何用Matlab求极限
  9. TF-IDF算法原理和公式
  10. matconvnet(CPU版本)基本使用