推测间距不均的Python数组

0 投票
1 回答
773 浏览
提问于 2025-04-18 03:32

我有两组很大的数组(这里我把它们缩短了):

x1 = [0, 2, 4, 6, 8, 10]

y1 = [0.2, 0.19, 0.22, 0.18, 0.22, 0.21]

x2 = [0, 0.2, 0.5, 1, 1.5, 2, 2.7, 3.5, 6, 10]

y2 = [5, 4.9, 4.9, 4.9, 5.2, 4, 4.6, 4, 4.3, 3.9] 

关于上面的数组,有三点可以注意:

  1. x1和y1有6个值,而x2和y2有10个值(具体的数字不重要,重要的是x2和y2的值比x1和y1多很多)。

  2. x1的值是均匀分布的,而x2的值则不是。

  3. 这两个x数组的起始值和结束值是相同的。

我想要创建一个新数组,这个数组包含y1在所有x2值上的外推值。

还要注意的是,y1中有一些潜在的值不会被包含在新数组中,比如在上面的例子中,y1[4]就不需要,因为它不对应x2的任何值。

另外,y2与这个特定的问题没有关系,我只是提供它以便更好地理解。

我尝试过使用Jblasco为类似问题开发的方法,链接在这里:interpolate python array to minimize maximum difference between elements,但我的问题与那个链接中的问题有些不同。

1 个回答

0

这看起来只是一个简单的插值/外推问题。

import numpy as np

#here y2 is the new extrapolated array
y2 = np.interp(x2,x1,y1)

撰写回答