python一维插值scipy.interpolate.interp1d

python一维插值scipy.interpolate.interp1dSciPy的interpolate模块提供了许多对数据进行插值运算的函数,范围涵盖简单的一维插值到复杂多维插值求解。当样本数据变化归因于一个独立的变量时,就使用一维插值;反之样本数据归因于多个独立变量时,使用多维插值。classscipy.interpolate.interp1d(x,y,kind=’linear’,axis=-1,copy=True,bounds_…

大家好,又见面了,我是你们的朋友全栈君。

        SciPy的interpolate模块提供了许多对数据进行插值运算的函数,范围涵盖简单的一维插值到复杂多维插值求解。当样本数据变化归因于一个独立的变量时,就使用一维插值;反之样本数据归因于多个独立变量时,使用多维插值。

class scipy.interpolate.interp1d(xykind=’linear’axis=-1copy=Truebounds_error=Nonefill_value=nanassume_sorted=False)[source]

Interpolate a 1-D function.

x and y are arrays of values used to approximate some function f: y = f(x). This class returns a function whose call method uses interpolation to find the value of new points.x和y是用来逼近函数f: y = f(x)的值的数组。该类返回一个函数,该函数的调用方法使用插值表达式来查找新点的值。

Note that calling interp1d with NaNs present in input values results in undefined behaviour.注意,使用在输入值中出现的NaNs调用interp1d会导致未定义的行为。

Parameters

x(N,) array_like

A 1-D array of real values.实值的一维数组。

y(…,N,…) array_like

A N-D array of real values. The length of y along the interpolation axis must be equal to the length of x.实值的N-D数组。沿插补轴的y的长度必须等于x的长度。

kind str or int, optional

Specifies the kind of interpolation as a string (‘linear’, ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’, ‘next’, where ‘zero’, ‘slinear’, ‘quadratic’ and ‘cubic’ refer to a spline interpolation of zeroth, first, second or third order; ‘previous’ and ‘next’ simply return the previous or next value of the point) or as an integer specifying the order of the spline interpolator to use. Default is ‘linear’.指定插值类型为一个字符串(‘ linear ‘, ‘ nearest ‘, ‘ zero ‘, ‘ slinear ‘, ‘ second ‘, ‘ cubic ‘, ‘ previous ‘, ‘ next ‘,其中’ zero ‘, ‘ slinear ‘, ‘ second ‘ and ‘ cubic ‘指的是插值为零、一阶、二阶或三阶的样条曲线;’ previous ‘和’ next ‘简单地返回该点的上一个或下一个值),或者作为一个整数指定样条插值器使用的顺序。默认设置是“线性”。

候选值 作用
‘zero’ 、’nearest’ 阶梯插值,相当于0阶B样条曲线
‘slinear’ 、’linear’ 线性插值,用一条直线连接所有的取样点,相当于一阶B样条曲线
‘quadratic’ 、’cubic’ 二阶和三阶B样条曲线,更高阶的曲线可以直接使用整数值指定

axis int, optional

Specifies the axis of y along which to interpolate. Interpolation defaults to the last axis of y.指定要沿其插入的y轴。插值默认是y的最后一个轴。

copy bool, optional

If True, the class makes internal copies of x and y. If False, references to x and y are used. The default is to copy.如果为真,则该类将创建x和y的内部副本。如果为假,则使用对x和y的引用。默认是复制。

bounds_error bool, optional

If True, a ValueError is raised any time interpolation is attempted on a value outside of the range of x (where extrapolation is necessary). If False, out of bounds values are assigned fill_value. By default, an error is raised unless fill_value="extrapolate".如果为真,则在试图对x范围之外的值进行插值时(需要外推的地方)会产生ValueError。如果为假,则为越界值分配fill_value。默认情况下,除非fill_value=”extrapolate”,否则将引发一个错误。

fill_value array-like or (array-like, array_like) or “extrapolate”, optional

  • if a ndarray (or float), this value will be used to fill in for requested points outside of the data range. If not provided, then the default is NaN. The array-like must broadcast properly to the dimensions of the non-interpolation axes.如果是ndarray(或float),则此值将用于填充数据范围之外的请求点。如果没有提供,那么缺省值是NaN。类数组必须正确地传播到非插值轴的维度。

  • If a two-element tuple, then the first element is used as a fill value for x_new < x[0] and the second element is used forx_new > x[-1]. Anything that is not a 2-element tuple (e.g., list or ndarray, regardless of shape) is taken to be a single array-like argument meant to be used for both bounds asbelow, above = fill_value, fill_value.如果是双元素元组,则第一个元素用作x_new < x[0]的填充值,第二个元素用作forx_new > x[-1]。任何非2元素元组(例如list或ndarray,无论其形状如何)的内容都被视为一个类似数组的参数,用于下面、上面的两个边界= fill_value、fill_value。

    New in version 0.17.0.

  • If “extrapolate”, then points outside the data range will be extrapolated.如果“外推”,则外推数据范围之外的点。

    New in version 0.17.0.

assume_sorted bool, optional

If False, values of x can be in any order and they are sorted first. If True, x has to be an array of monotonically increasing values.如果为假,则x的值可以是任意顺序的,并且可以先排序。如果为真,则x必须是一个值单调递增的数组。

>>> import numpy as np
>>> import matplotlib.pyplot as pl
>>> from scipy.interpolate import interp1d
>>> 
>>> x=np.linspace(0,10,11)
>>> y=np.sin(x)
>>> x
array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])
>>> y
array([ 0.        ,  0.84147098,  0.90929743,  0.14112001, -0.7568025 ,
       -0.95892427, -0.2794155 ,  0.6569866 ,  0.98935825,  0.41211849,
       -0.54402111])
>>> pl.plot(x,y,"o")
[<matplotlib.lines.Line2D object at 0x000000000AE3BF48>]
>>> pl.show()

python一维插值scipy.interpolate.interp1d

>>> x_new = np.linspace(0, 10, 101)
>>> x_new
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ,
        1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9,  2. ,  2.1,
        2.2,  2.3,  2.4,  2.5,  2.6,  2.7,  2.8,  2.9,  3. ,  3.1,  3.2,
        3.3,  3.4,  3.5,  3.6,  3.7,  3.8,  3.9,  4. ,  4.1,  4.2,  4.3,
        4.4,  4.5,  4.6,  4.7,  4.8,  4.9,  5. ,  5.1,  5.2,  5.3,  5.4,
        5.5,  5.6,  5.7,  5.8,  5.9,  6. ,  6.1,  6.2,  6.3,  6.4,  6.5,
        6.6,  6.7,  6.8,  6.9,  7. ,  7.1,  7.2,  7.3,  7.4,  7.5,  7.6,
        7.7,  7.8,  7.9,  8. ,  8.1,  8.2,  8.3,  8.4,  8.5,  8.6,  8.7,
        8.8,  8.9,  9. ,  9.1,  9.2,  9.3,  9.4,  9.5,  9.6,  9.7,  9.8,
        9.9, 10. ])
>>> 
>>> kind_lst = ['nearest', 'zero', 'slinear', 'cubic', 'previous',  'next']
>>> for k in kind_lst:
	f = interp1d(x,y,kind=k)
	y_new = f(x_new)
	pl.plot(x_new, y_new, label=k)

	
[<matplotlib.lines.Line2D object at 0x000000000F74CE08>]
[<matplotlib.lines.Line2D object at 0x000000000F6FF948>]
[<matplotlib.lines.Line2D object at 0x000000000DC41908>]
[<matplotlib.lines.Line2D object at 0x000000000F757FC8>]
[<matplotlib.lines.Line2D object at 0x000000000F6FF808>]
[<matplotlib.lines.Line2D object at 0x000000000F6F3908>]
>>> 
>>> pl.legend(loc="lower right")
<matplotlib.legend.Legend object at 0x000000000DEC9C08>
>>> pl.show()
>>> 

python一维插值scipy.interpolate.interp1d

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133423.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • rtsp视频流下载_rtmp网页视频播放器

    rtsp视频流下载_rtmp网页视频播放器在线视频流地址:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov模拟器显示界面:学好一门语言,动手去练,半天上手,一星期炉火纯青。——专攻无人车的学长

  • 常量指针,指针常量的区别是什么_指针常量与常量指针

    常量指针,指针常量的区别是什么_指针常量与常量指针**要有具备扎实指针知识……了解引用、指针的一些注意事项:引用并非对象引用必须初始化引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起类型要严格匹配一、常量指针定义:又叫常指针,可以理解为常量的指针,也即这个是指针,但指向的是个常量,这个常量是指针的值(地址),而不是地址指向的值。关键点:常量指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改;常量指针可以被赋值为变量的地址,之所以叫常量指针,是限制了通过这个指针修改变量的值;指针还可以指向别

  • url加时间戳避免再次请求当前路径出现的缓存问题[通俗易懂]

    url加时间戳避免再次请求当前路径出现的缓存问题[通俗易懂]1.先解释一下,为什么要加时间戳: URL后面添加随机数通常用于防止客户端(浏览器)缓存页面。浏览器缓存是基于url进行缓存的,如果页面允许缓存,则在一定时间内(缓存时效时间前)再次访问相同的URL,浏览器就不会再次发送请求到服务器端,而是直接从缓存中获取指定资源。2.加时间戳的方法:[javascript] viewplain copy

  • C语言:判断回文字符串的两种简单方法

    C语言:判断回文字符串的两种简单方法我的机器学习教程「美团」算法工程师带你入门机器学习已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~之前写…

  • linux popd 命令,Linux shell中的pushd和popd命令「建议收藏」

    linux popd 命令,Linux shell中的pushd和popd命令「建议收藏」在linux的shell中可以使用pushd和popd命令方便地在多个目录之间切换。通过使用pushd和popd能够极大地提高效率。下面介绍下简单使用方法:0、使用cd-进行目录切换一般,Shell中都可以通过cd-命令回到之前的目录,下面是一个例子:$pwd/home/lfqy$cd/$cd-/home/lfqy$实际上,cd-中,-就相当于变量$OLDPWD。cd-就相当…

  • 【详细教程·本人亲测】解决win10家庭版系统C:\Users用户名中有中文,更改为英文的问题

    【详细教程·本人亲测】解决win10家庭版系统C:\Users用户名中有中文,更改为英文的问题【本人亲测】解决win10家庭版系统C:\Users用户名更改的问题【前言】新电脑刚买来,自带win10系统,激活时注册用户名和密码,为了方便记忆把用户名设为中文。随着后来学习和工作软件越装越多,在学习软件开发才发现Users必须为英文,此时重装系统成本极大!因此本人花了大量时间在网上寻找解决方案。但是基本上不适合win10家庭版。终于最后搜到一个方案解决,深知不易,特分享给各位。<第一…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号