Python 在numpy中使用拉格朗日插值时出现运行时警告
我试图在时间序列上实现拉格朗日插值。我的输入格式如下,其中包含两列datetime和stock valuePython 在numpy中使用拉格朗日插值时出现运行时警告,python,python-2.7,numpy,interpolation,data-analysis,Python,Python 2.7,Numpy,Interpolation,Data Analysis,我试图在时间序列上实现拉格朗日插值。我的输入格式如下,其中包含两列datetime和stock value '3/8/2012 16:00:00 32.21' '3/9/2012 16:00:00 32.16' '3/12/2012 16:00:00 32.2' '3/13/2012 16:00:00 Missing_1' '3/14/2012 16:00:00 32.88' '3/15/2012 16:00:00 32.94' '3/16/2012 16:00:00 32.95' '3/1
'3/8/2012 16:00:00 32.21'
'3/9/2012 16:00:00 32.16'
'3/12/2012 16:00:00 32.2'
'3/13/2012 16:00:00 Missing_1'
'3/14/2012 16:00:00 32.88'
'3/15/2012 16:00:00 32.94'
'3/16/2012 16:00:00 32.95'
'3/19/2012 16:00:00 32.61'
'3/20/2012 16:00:00 32.15'
'3/21/2012 16:00:00 Missing_2'
'3/22/2012 16:00:00 32.09'
'3/23/2012 16:00:00 32.11'
'3/26/2012 16:00:00 Missing_3'
在一些输入案例中,股票价值缺失,这些缺失的价值我正试图使用
但我收到运行时警告
/var/ml/python/local/lib/python2.7/site-packages/numpy/lib/polynomial.py:728: RuntimeWarning: invalid value encountered in add
val = NX.concatenate((zr, a1)) + a2
/var/ml/python/local/lib/python2.7/site-packages/numpy/lib/polynomial.py:725: RuntimeWarning: invalid value encountered in add
val = a1 + a2
日期转换后的
x
s会产生较大的值。在(拉格朗日)多项式中输入这些值,然后尝试进行插值可能会导致数值不稳定计算(因为,对于较大的x
,要获得相对较小的y
,需要较小的系数)
此外,的文档警告说,实现在数量上是不稳定的
始终将数据标准化为一些合理的数字。你可以减去某个日期;默认使用1970,unix零时间,这显然是一个错误的选择。以你的例子为例,选择2012年3月的第一个例子,或者用中间值(1332000000可能是一个好的值)除以大约1的值。但是,您可以在此处了解numpy如何处理数值异常(运行时警告的原因)以及如何修改该异常:
/var/ml/python/local/lib/python2.7/site-packages/numpy/lib/polynomial.py:728: RuntimeWarning: invalid value encountered in add
val = NX.concatenate((zr, a1)) + a2
/var/ml/python/local/lib/python2.7/site-packages/numpy/lib/polynomial.py:725: RuntimeWarning: invalid value encountered in add
val = a1 + a2