一维阵列(时间)上二维数据(速度(x,y))的插值

2024-04-25 00:31:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个随时间变化的速度列表。有没有一种方法可以在列表(时间)的大小上插入数据? 这里有一个简单的代码:

import numpy as np
v_list = []
v_time1 = [[1,1], [2,2]] #2D
v_time2 = [[0,1], [3,4]] #2D
v_list.append(v_time1,v_time2)
time = np.size(v_list) #1D

我的目标是随时间插入v_list中包含的数据,这样我就可以根据需要的时间“调用”它。像这样:

^{pr2}$

干杯!在


Tags: 数据方法代码importnumpy列表timeas
1条回答
网友
1楼 · 发布于 2024-04-25 00:31:16

您可以使用^{}。它可以处理作为数组的函数的值。在

例如

In [35]: from scipy.interpolate import interp1d

这是你的尺寸。我将它们放入名为v的numpy数组中:

^{pr2}$

t包含时间值:

In [40]: t = np.arange(v.shape[0])

In [41]: t
Out[41]: array([0, 1])

创建插值器。默认情况下,它使用线性插值:

In [42]: f = interp1d(t, v, axis=0)

在几个时间值处检查插值器的值:

In [43]: f(0)
Out[43]: 
array([[ 1.,  1.],
       [ 2.,  2.]])

In [44]: f(0.5)
Out[44]: 
array([[ 0.5,  1. ],
       [ 2.5,  3. ]])

In [45]: f(1)
Out[45]: 
array([[ 0.,  1.],
       [ 3.,  4.]])

相关问题 更多 >