标签: extrapolation

使用 LinearNDInterpolator 进行推断

我有一个 3D 数据集,我想对其进行插值和线性外推。使用 可以轻松完成插值scipy.interpolate.LinearNDInterpolator。该模块只能为参数范围之外的值填充常量/nan,但我不明白为什么它不提供打开外推法的选项。

查看代码,我发现该模块是用 cython 编写的。由于没有 cython 经验,很难使用代码来实现外推。我可以用纯Python代码编写它,但也许这里的其他人有更好的主意?我的特殊情况涉及恒定的 xy 网格,但 z 值不断变化(-100,000),因此插值必须很快,因为每次 z 值变化时都会运行插值。

根据要求给出一个基本示例,假设我有一个像

xyPairs = [[-1.0, 0.0], [-1.0, 4.0],
           [-0.5, 0.0], [-0.5, 4.0],
           [-0.3, 0.0], [-0.3, 4.0],
           [+0.0, 0.0], [+0.0, 4.0],
           [+0.2, 0.0], [+0.2, 4.0]]
Run Code Online (Sandbox Code Playgroud)

假设我想计算x = -1.5, -0.8, +0.5和 处的值y = -0.2, +0.2, +0.5。目前,我正在对每个 y 值沿 x 轴执行一维插值/外推,然后对每个 x 值沿 y 轴执行一维插值/外推。外推由 中的第二个函数完成ryggyr's answer

python interpolation numpy scipy extrapolation

3
推荐指数
1
解决办法
5054
查看次数

在R中推断出时间序列数据

我有过去20年的时间序列数据.这个变量每年都有测量,所以我有20个值.我有一个制表符分隔的文件,第一列代表年份和第二列的值.这是它的样子:

1991    438
1992    408
1993    381
1994    361
1995    338
1996    315
1997    289
1998    261
1999    229
2000    206
2001    190
2002    173
2003    151
2004    141
2005    126
2006    108
2007    99
2008    93
2009    85
2010    77
2011    71
2012    67

我想推断未来几年第二列的价值.第二列中的值正在下降的速度也在下降,所以我认为我们不能使用线性回归.我想知道第二列将在哪一年接近零值.我从来没有使用过R,所以如果你甚至可以帮助我使用用于从制表符分隔文件中读取数据的代码,那将会很棒.

谢谢

r time-series extrapolation

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

将 x,y 坐标从一种屏幕尺寸和分辨率外推到其他屏幕尺寸和分辨率

快点我有什么!!我有一个定义的屏幕尺寸(5.5 英寸)和分辨率(500 像素宽度和 350 像素高度),并且我在这个屏幕上有某个位置(x,y)的坐标。

我会有什么!!我将有新屏幕尺寸(8.2 英寸)和分辨率(1020 px 宽和 730 px 高)的规格。

我需要计算/推断/查找什么?我需要在具有新分辨率的新屏幕尺寸上找到相同的 x,y 位置。而且我需要一个可以在任何屏幕尺寸或分辨率上工作的通用解决方案。

任何人都可以帮我解决这个问题。

screen device coordinates squish extrapolation

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

在R中的ggplot2中外推线性拟合散点图

我想对ggplot2超出该数据区域的数据子集的数据进行线性拟合(以便可视化外推的危险).在下面的代码中,我想将1980-1990帧生成的线性拟合扩展到1990-2000,这样我就可以在整个时间段内添加完全拟合并可视化差异:

set.seed(123)           
frame <- data.frame(year = rep(1980:2000, 10), y = sample(1:1000, 210))
head(frame)

frame1 <- frame[frame$year %in% c(1980:1990),]
frame2 <- frame[frame$year %in% c(1980:2000),]

ggplot(frame1, aes(x = year, y = y)) + geom_point(shape = 1) + geom_smooth(method = lm) + xlim(1980, 2000)
ggplot(frame2, aes(x = year, y = y)) + geom_point(shape = 1) + geom_smooth(method = lm) + xlim(1980, 2000)
Run Code Online (Sandbox Code Playgroud)

我是新手,ggplot2所以如何从第一帧扩展线性拟合,然后添加数据和新的拟合与不同的颜色将是伟大的.谢谢.

r ggplot2 lm extrapolation

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

如何根据x,y值推断函数?

好的,所以我几天前开始使用Python.我主要将它用于DataScience,因为我是一名本科化学专业的学生.好吧,现在我手上有一个小问题,因为我必须推断一个功能.我知道如何制作简单的图表和图表,所以请尽量解释它对我来说很容易.我从以下开始:

from matplotlib import pyplot as plt
from matplotlib import style
style.use('classic')
x = [0.632455532, 0.178885438, 0.050596443, 0.014310835, 0.004047715]
y = [114.75, 127.5, 139.0625, 147.9492188, 153.8085938]
x2 = [0.707, 0.2, 0.057, 0.016, 0.00453]
y2 = [2.086, 7.525, 26.59375,87.03125, 375.9765625]
Run Code Online (Sandbox Code Playgroud)

所以有了这些值,我必须找出一种方法来推断,以便在我的x = 0时获得ay(或y2)值.我知道如何以数学方式做到这一点,但我想知道python是否可以做到这一点以及如何在Python中执行它.有一个简单的方法吗?你能给我一个我给定值的例子吗?谢谢

python numpy matplotlib extrapolation

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

外推数据框行

我有一个df喜欢

d = {'col1': [np.nan, np.nan, 1],
     'col2': [1, 1, 2],
     'col3': [2, 2, 3],
     'col4': [np.nan, 3, np.nan]}
df = pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

并希望对行进行外推以填充任何尾随nans。

预期输出:

d2 = {'col1': [np.nan, np.nan, 1],
      'col2': [1, 1, 2],
      'col3': [2, 2, 3],
      'col4': [3, 3, 4]}
df2 = pd.DataFrame(data=d2)
Run Code Online (Sandbox Code Playgroud)

编辑:每行的斜率都不同。我试过了,df.interpolate(method='linear')但这给了我尾随nans的平坦趋势

interpolation scipy dataframe pandas extrapolation

1
推荐指数
1
解决办法
1688
查看次数

Matlab interp2外推

我正在使用2-D插值interp2.对于某些数据值,interp2命令返回NaN,因为其中一个维度超出了已知值向量定义的范围.

可以使用interp1命令进行推断.但是,有没有办法做到这一点interp2

谢谢

这是我使用interp2命令的代码:

function [Cla] = AirfoilLiftCurveSlope(obj,AFdata,Rc,M)

% Input:
% AFdata: Airfoil coordinates.
% Rc: Local Reynolds number.
% M: Mach number for Prandtle Glauert compressibility correction.

% Output: 
% Cla: 2 dimensional lift curve slopea applicable to linear region of lift polar.

load('ESDU84026a.mat');

xi = size(AFdata);

if mod(xi(1,1),2) == 0
    %number is even
    AFupper = flipud(AFdata(1:(xi(1,1)/2),:));
    AFlower = AFdata(((xi(1,1)/2)+1):end,:);
else
    %number is odd
    AFupper = flipud(AFdata(1:floor((xi(1,1)/2)),:));
    AFlower = AFdata((floor(xi(1,1)/2)+1):end,:);
end


t_c = …
Run Code Online (Sandbox Code Playgroud)

matlab extrapolation

0
推荐指数
1
解决办法
5539
查看次数

R:内插 + 外推边界 - 使用 data.table?

所以,我有以下问题:我有一个数据集 A(data.table 对象),其结构如下:

date days rate 1996-01-02 9 5.763067 1996-01-02 15 5.745902 1996-01-02 50 5.673317 1996-01-02 78 5.608884 1996-01-02 169 5.473762 1996-01-03 9 5.763067 1996-01-03 14 5.747397 1996-01-03 49 5.672263 1996-01-03 77 5.603705 1996-01-03 168 5.470584 1996-01-04 11 5.729460 1996-01-04 13 5.726104 1996-01-04 48 5.664931 1996-01-04 76 5.601891 1996-01-04 167 5.468961

请注意,天数列及其大小可能因每天而异。我现在的目标是(分段线性地)在几天内插入速率。我这样做的每一天通过

approx(x=A[,days],y=A[,rate],xout=days_vec,rule=2)
Run Code Online (Sandbox Code Playgroud)

where days_vec <- min_days:max_days,即我感兴趣的天数范围(比如 1:100)。

我在这里有两个问题:

  1. 大约只进行插值,即它不会在 min(x) 和 max(x) 之间创建线性拟合。如果我现在对 1:100 天感兴趣,我首先需要使用第 9 天和第 15 天(A 的前 2 行)通过以下方式手动完成:

    first_days …

interpolation r extrapolation data.table

0
推荐指数
1
解决办法
1325
查看次数

使用有限的数据点推断数据集并将所有值添加到新数据集

我有一个数据点非常有限的数据集。

 x<- c(4, 8, 13, 24)
 y<- c(40, 37, 28, 20)
 df<- data.frame(x,y)
Run Code Online (Sandbox Code Playgroud)

现在我想推断这些数据,创建一个数据集,其中 y 的值将为 1-100 之间的 x 的每个值(无小数)给出。x 和 y 具有线性关系。

其次,可以通过使用循环之类的东西来对多个数据帧完成此操作吗?谢谢你!

r dataset extrapolation

0
推荐指数
1
解决办法
239
查看次数