【发布时间】:2017-12-19 06:00:13
【问题描述】:
我正在尝试在 Python 中的两个数组之间进行样条插值。我的数据集如下所示:
| 5 15
-------+--------------------
1 32.68 29.16
2 32.73 27.20
3 32.78 28.24
4 32.83 27.27
5 32.88 25.27
6 32.93 31.35
7 32.98 27.39
8 33.03 26.42
9 33.08 27.46
10 33.13 30.50
11 33.18 27.53
12 33.23 29.57
13 33.23 27.99
14 33.23 28.64
15 33.23 26.68
16 33.23 29.72
我正在尝试在两点之间进行样条插值并产生 10 的值,最终看起来像这样(但样条插值):
| 10
-----+--------
1 30.92
2 29.965
3 30.51
4 30.05
5 29.075
6 32.14
7 30.185
8 29.725
9 30.27
10 31.815
11 30.355
12 31.4
13 30.61
14 30.935
15 29.955
16 31.475
我一直在查看使用scipy.interpolate.InterpolatedUnivariateSpline 的示例,但似乎x 只需要一个数组,y 只需要一个数组,我不知道如何让它对这两个数组进行插值。
有人可以帮我指出正确的方向吗?
【问题讨论】:
-
您好,您的操作似乎有 2 个问题。 1.你想在两个值之间插入一个值,但你只有这两个值,所以样条插值没有任何意义。 2. 您的数据似乎是双变量而不是单变量:一个变量由您的列表示,一个变量由您的行表示。所以也许你需要尝试双变量插值。
-
@user1901493 从数据应该被视为单变量还是双变量的问题来看并不明显。这取决于每一行是否被认为是要插入的独立数据系列。
-
好的,我们认为它是独立的。因此,对于每一行,您需要从值 5,15 插入到 10 的值。0、20、25 等是否还有其他值?还有一个问题:你能发布你的代码吗,我看不出你是如何组织数组的。
-
您找到解决方案了吗?
标签: python numpy scipy interpolation