我有2个numpy数组
X = [[2 3 6], [7 2 9], [7 1 4]]
a = [0 0.0005413307 0.0010949014 0.0015468832 0.0027740823 0.0033288284]
b = [0 0.0050251256 0.0100502513 0.0150753769 0.0201005025 0.0251256281]
new = []
for z in range(3):
new.append(interp1d(a, z[0], b, 'linear'))
我收到的错误是:
if xi is not None and shape[axis] != len(xi):
TypeError: tuple indices must be integers, not str
我需要找到相同的线性插值。我该怎么找到?
我有关于时间a的值X但是我想找到时间b的插值。 对于每个a [i]和b [i]?
,线性插值将给出3个点,如X所示答案 0 :(得分:3)
你把参数放错了。流动是interp1d的帮助信息,请查看:
interp1d(x, y, kind='linear', axis=-1, copy=True, bounds_error=True,fill_value=np.nan)
插入一维功能。
x
和y
是用于近似某个函数f的值数组:y = f(x)
。该类返回一个函数,其调用方法使用插值 找到新点的价值。
答案 1 :(得分:2)
interp1d
是一个函数,其返回值是一个新函数。然后可以使用给定插值范围中的值调用此新函数:
from scipy.interpolate import interp1d
x1 = [ 0., 0.04007922, 0.04723573, 0.05440107, 0.06178645, 0.06837938]
x2 = [ 0., 0.00502513, 0.01005025, 0.01507538, 0.0201005, 0.02512563]
f = interp1d(x1, x2)
f([0.0, 0.01, 0.02, 0.03, 0.068])
#array([ 0. , 0.0012538 , 0.0025076 , 0.0037614 , 0.02483647])