python数据平滑处理,numpy之数据平滑处理
'''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之数据平滑处理相关推荐
- 如何用matlab读取npz文件,Python Numpy中数据的常用的保存与读取方法
在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...
- python怎么读取txt文件数据保存数组中-Python Numpy中数据的常用的保存与读取方法...
在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...
- python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...
实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...
- numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy
文章申明 文章作者:梁斌伟 责任编辑:郭德真 微信编辑:玖蓁 本文转载自公众号 实战统计学 (ID:statrcn) 原文链接:可视化图解Python科学计算包NumPy 作者:梁斌伟 编者按: 你真 ...
- python读txt文件 数组-python将txt等文件中的数据读为numpy数组的方法
实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...
- python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法
在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...
- 下载MNIST数据集并使用python将数据转换成NumPy数组(源码解析)
下载MNIST数据集并使用python将数据转换成NumPy数组 首先来分析init_mnist函数 接下来继续分析load_mnist函数 实现数据集转换的python脚本的代码 显示MNIST图像 ...
- 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 ...
- python numpy读取数据_Python数据分析之numpy学习(一)
文|刘顺祥 Python是一门不错的动态语言,其应用的领域非常广泛,如web开发.Linux运维.数据挖掘.机器学习.爬虫.推荐系统等.在学完<廖雪峰Python2.7教程>感觉受益匪浅, ...
- c语言转换为python语言_使用C语言中的数据缓冲区和NumPy数组之间的转换来为Python接口打包C程序的最佳方法是什么?...
基本上有三种方式: >从图像缓冲区复制到NumPy阵列,反之亦然.当给定C/C++图像时,创建NumPy阵列并复制数据,当给定NumPy阵列时,创建C/C++图像并复制数据. > NumP ...
最新文章
- android 简易定时器
- 关键字static在C和C++中的区别
- flask静态html
- 程序员常对产品经理说的话
- [转载]一个图形爱好者的书架/白话说学计算机图形学
- python进行数据可视化时,中文是方块显示
- [jQuery] 速记一の屏蔽鼠标右键监听鼠标Event
- matlab解决高等数学和线性代数的部分问题
- 计算机远程桌面连接软件,windows7远程桌面连接软件 提取自最新windows7,可运行于XP...
- mysql计算同比和环比的区别_MySQL实践之同比环比
- js 字符串 转换 html标签,js 字符串转html标签
- 今日接手一个项目,服务器重启后,mysql启动失败
- 八、Sentinel.conf 配置文件详细介绍
- 如何使用CC攻击中小型网站?
- python 汉字与拼音的转换--pypinyin
- 第一个python自动化脚本
- 酸菜鱼用什么鱼最好吃
- 大数据培训有前途吗,大数据工资一般多少?
- 「go-micro」学习笔记1——Micro 与 Go-Micro
- 利用pandoc把latex文件转换为word的基本操作
热门文章
- 二、简单易用的Python代码加密方法(基于Cython)
- LINUX基本操作(实验1)
- 广义线性模型(GLMs)及算法介绍
- Paper--3d reconstruction:Photo Tourism: Exploring Photo Collections in 3D
- 计算机中三大总线:地址总线、数据总线、控制总线
- diskgenius创建efi分区_找不到引导分区 启动分区不存在 怎么创建efi系统分区
- 两个音轨合并_技能!如何合并两个音频文件?
- 如何用Matlab求极限
- TF-IDF算法原理和公式
- matconvnet(CPU版本)基本使用