相关疑难解决方法(0)

如何制作scipy.interpolate给出超出输入范围的外推结果?

我正在尝试移植一个程序,该程序使用手动插值器(由数学家大学开发)来使用scipy提供的插值器.我想使用或包装scipy插值器,使其尽可能接近旧插值器的行为.

两个函数之间的关键区别在于我们的原始插值器 - 如果输入值高于或低于输入范围,我们的原始插值器将推断结果.如果你用scipy插值器尝试这个,它会引发一个ValueError.以此程序为例:

import numpy as np
from scipy import interpolate

x = np.arange(0,10)
y = np.exp(-x/3.0)
f = interpolate.interp1d(x, y)

print f(9)
print f(11) # Causes ValueError, because it's greater than max(x)
Run Code Online (Sandbox Code Playgroud)

是否有一种明智的方法可以使它不会崩溃,最后一行只是做一个线性推断,将第一个和最后两个点定义的渐变延续到无穷大.

请注意,在真实软件中我实际上并没有使用exp函数 - 这只是为了说明!

python math numpy scipy

74
推荐指数
6
解决办法
8万
查看次数

有没有简单的方法在python中推断数据点到未来?

我有一个简单的numpy数组,每个日期都有一个数据点.像这样的东西:

>>> import numpy as np
>>> from datetime import date
>>> from datetime import date
>>> x = np.array( [(date(2008,3,5), 4800 ), (date(2008,3,15), 4000 ), (date(2008,3,
20), 3500 ), (date(2008,4,5), 3000 ) ] )
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来推断未来的数据点:日期(2008,5,1),日期(2008年,5,20)等?我知道它可以用数学算法完成.但在这里,我正在寻找一些低调的果实.实际上我喜欢numpy.linalg.solve所做的,但它看起来并不适用于外推.也许我绝对错了.

实际上更具体地说,我正在构建一个烧毁图表(xp术语):'x = date和y =要完成的工作量',所以我已经完成了已经完成的冲刺,我想要想象未来的sprint如何如果目前的情况持续下去将会发生.最后我想预测发布日期.因此,"要完成的工作量"的性质总是落在烧毁图表上.另外,我想获得推断的发布日期:音量变为零时的日期.

这一切都是为了向开发团队展示事情的进展.这里的准确性并不那么重要:)开发团队的动机是主要因素.这意味着我对非常近似的外推技术绝对没问题.

python interpolation numpy spline burndowncharts

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

numpy ×2

python ×2

burndowncharts ×1

interpolation ×1

math ×1

scipy ×1

spline ×1