python - 用于 python 插值的 scipy 的 splrep/splev 返回 nan

标签 python scipy nan

我有一个 data set第一列是x数据(波长),第二列是y数据(相对强度)。

我希望将它插值到另一个 x_new-data 但我的问题是 splrep 返回 nan-values:

>>import numpy as np
>>from scipy.interpolate import splrep, splev
>>d = np.loadtxt("test.txt")
>>x,y = d[:,0],d[:,1]
>>
>>f = splrep( x,y,k=5 )
>>print f
>>(array([ 4501.19,  4501.19,  4501.19, ...,  7091.74,  7091.74,  7091.74]), array([ nan,  nan,  nan, ...,   0.,   0.,   0.]), 5)

当我没有指定 k 时也会发生这种情况。有什么建议可以解决这个问题吗?

最佳答案

您的 x 值可能包含重复项,请使用 s=... 关键字参数给 splrep 设置平滑因子,因为如果未设置,样条线应该完全遍历每个点,这对于重复是不可能的。

可能它们不是重复的,但也非常接近。

关于python - 用于 python 插值的 scipy 的 splrep/splev 返回 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12054060/

相关文章:

python - 如何使用 python_ columns 将 csv 文件插入数据库

python - 具有对数采样时间间隔的 Pandas 数据帧插值

python - pandas GroupBy 具有 NaN(缺失)值的列

javascript - 变量始终为 NaN

python - 在长度为 1 的列表中解包 1 元组

Python:在模块和类之间共享全局变量

python - 使用 matplotlib 绘图时出现错误

python - 找到一个python变换函数或numpy矩阵将偏斜正态分布变换为正态分布

python - "rank"的 Numpy/scipy 弃用警告

indexing - Xtensor 返回值为 NaN 的索引