当前位置: 首页 > 面试题库 >

用Python进行样条插值

寿阳华
2023-03-14
问题内容

我编写了以下代码来执行样条插值:

import numpy as np
import scipy as sp

x1 = [1., 0.88,  0.67,  0.50,  0.35,  0.27, 0.18,  0.11,  0.08,  0.04,  0.04,  0.02]
y1 = [0., 13.99, 27.99, 41.98, 55.98, 69.97, 83.97, 97.97, 111.96, 125.96, 139.95, 153.95]

x = np.array(x1)
y = np.array(y1)

new_length = 25
new_x = np.linspace(x.min(), x.max(), new_length)
new_y = sp.interpolate.interp1d(x, y, kind='cubic')(new_x)

但我得到:

ValueError: A value in x_new is below the interpolation range.

interpolate.py

任何帮助,将不胜感激。


问题答案:

从scipy.interpolate.interp1d上的scipy文档中:

scipy.interpolate.interp1d(x,y,kind =’linear’,axis = -1,copy =
True,bounds_error = True,fill_value = np.nan)

x:类似array_。一维数组,单调递增实数值。

问题是x值不是单调增加的。实际上,它们正在单调减少。让我知道这是否有效,以及它是否仍在您要寻找的计算中。:

import numpy as np
import scipy as sp
from scipy.interpolate import interp1d

x1 = sorted([1., 0.88, 0.67, 0.50, 0.35, 0.27, 0.18, 0.11, 0.08, 0.04, 0.04, 0.02])
y1 = [0., 13.99, 27.99, 41.98, 55.98, 69.97, 83.97, 97.97, 111.96, 125.96, 139.95, 153.95]

new_length = 25
new_x = np.linspace(x.min(), x.max(), new_length)
new_y = sp.interpolate.interp1d(x, y, kind='cubic')(new_x)


 类似资料:
  • 本文向大家介绍Python对数据进行插值和下采样的方法,包括了Python对数据进行插值和下采样的方法的使用技巧和注意事项,需要的朋友参考一下 使用Python进行插值非常方便,可以直接使用scipy中的interpolate 其中y_bspline就是从1024插值得到的4096的数据 但是,scipy中好像并没有进行下采样的函数,嗯..难道是因为太过简单了么,不过好像用一个循环就可以完成,但如

  • 本文向大家介绍python 怎样进行内存管理,包括了python 怎样进行内存管理的使用技巧和注意事项,需要的朋友参考一下 从三个方面来说,主要有方面的措施:对象的引用计数机制、垃圾回收机制、内存池机制。 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。 引用计数增加的情况: 1、一个对象分配一个新名称 2、将其放入一个容器中(如列表、元组或字典

  • 问题内容: 当脚本执行可能需要花费时间的某些任务时,如何使用进度条? 例如,一个需要一些时间才能完成并True在完成后返回的函数。在执行功能期间如何显示进度条? 请注意,我需要做到这一点是实时的,所以我不知道该怎么做。我需要thread这个吗?我不知道。 现在,我在执行函数时不打印任何内容,但是进度条会很不错。另外,我对如何从代码角度完成此操作更感兴趣。 问题答案: 有特定的库(例如此处的库),但

  • 本文向大家介绍Python实现线性插值和三次样条插值的示例代码,包括了Python实现线性插值和三次样条插值的示例代码的使用技巧和注意事项,需要的朋友参考一下 (1)、函数 y = sin(x) (2)、数据准备 (3)、样条插值 (4)、绘图 (5)、综合代码 (6)、结果展示 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我想创建一个日期时间字符串,但添加CET/CEST,具体取决于是否夏时制。 因此,如果返回true,则附加“CEST”字符串,如果不是,则仅附加“CET”。 有没有简单/快捷的方法来做这件事?

  • 问题内容: 我需要在React JS中使用Stripe.js创建令牌,但找不到任何简单方法。在node.js中,我将执行以下操作: 但是Stripe npm模块在React JS中对我不起作用。我收到错误消息: 无法解析模块“ child_process” 因此,既然这显然是节点库,我想使用 但是我不确定在React中实现外部库的最佳实践是什么 问题答案: 您可以像其他客户端库一样继续添加它,就像

  • 本文向大家介绍Android 七种进度条的样式,包括了Android 七种进度条的样式的使用技巧和注意事项,需要的朋友参考一下 当一个应用在后台执行时,前台界面就不会有什么信息,这时用户根本不知道程序是否在执行、执行进度如何、应用程序是否遇到错误终止等,这时需要使用进度条来提示用户后台程序执行的进度。Android系统提供了两大类进度条样式,长形进度条(progress-BarStyleHoriz

  • 在一个有四列的大数据框(“myfile”)中,我必须添加第五列,其中的值有条件地基于前四列。 更喜欢使用和的答案,主要是因为它在大型数据集中的速度。 我的数据框如下所示: 第五列(V5)的值基于一些条件规则: 现在我想使用函数在所有行上使用这些规则(以避免慢循环)。类似这样的事情(是的,我知道这样不行!): 结果应该是: 如何在dplyr中执行此操作?