python样条插值的实现代码

yipeiwu_com6年前Python基础

本文实例为大家分享了python样条插值的具体实现代码,供大家参考,具体内容如下

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
 
#导入数据
data1=pd.read_csv('data1.csv',encoding='gbk')
 
#数据准备
X=data1.index #定义数据点
Y=data1['沪深300'].values #定义数据点
x=np.arange(0,len(data1),0.15) #定义观测点
 
#进行样条差值
import scipy.interpolate as spi
 
#进行一阶样条差值
ipo1=spi.splrep(X,Y,k=1) #源数据点导入,生成参数
iy1=spi.splev(x,ipo1) #根据观测点和样条参数,生成插值
 
#进行三次样条拟合
ipo3=spi.splrep(X,Y,k=3) #源数据点导入,生成参数
iy3=spi.splev(x,ipo3) #根据观测点和样条参数,生成插值
 
 
##作图
fig,(ax1,ax2)=plt.subplots(2,1,figsize=(10,12))
ax1.plot(X,Y,label='沪深300')
ax1.plot(x,iy1,'r.',label='插值点')
ax1.set_ylim(Y.min()-10,Y.max()+10)
ax1.set_ylabel('指数')
ax1.set_title('线性插值')
ax1.legend()
ax2.plot(X,Y,label='沪深300')
ax2.plot(x,iy3,'b.',label='插值点')
ax2.set_ylim(Y.min()-10,Y.max()+10)
ax2.set_ylabel('指数')
ax2.set_title('三次样条插值')
ax2.legend()

基于《Python 与量化投资 从基础到实战》的内容练习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python Socket实现简单TCP Server/client功能示例

本文实例讲述了Python Socket实现简单TCP Server/client功能。分享给大家供大家参考,具体如下: 网络上关于socket的介绍文章数不胜数。自己记录下学习的点点滴...

Python BeautifulSoup中文乱码问题的2种解决方法

解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家首先是代码复制代码 代码如下:from bs...

Python获取航线信息并且制作成图的讲解

Python获取航线信息并且制作成图的讲解

获取航线信息并且制作成图 航线信息 航线信息查询网站 本次实例使用的航班号为 CES5496 查询后在network中可以寻找到如下内容https://zh.flighta...

浅谈flask中的before_request与after_request

本文主要是对flask中的before_request与after_request用法做一个简单的分析,具体实例和介绍如下。 使用before_request 和 after_reque...

python3+dlib实现人脸识别和情绪分析

python3+dlib实现人脸识别和情绪分析

一、介绍 我想做的是基于人脸识别的表情(情绪)分析。看到网上也是有很多的开源库提供使用,为开发提供了很大的方便。我选择目前用的比较多的dlib库进行人脸识别与特征标定。使用python也...