问题:如何使用相同的1d数组线性插值2d数组的每一行?
我有两组x坐标和一个y坐标矩阵,我想在没有循环的情况下这样做:
for k in range(len(y[:,0]))
y_want = np.interp(x_want,x_have,y_have[k,:])
y_new.append(y_want)
是否有内置的numpy功能可以做到这一点?
答案 0 :(得分:2)
使用scipy.interpolate.interp1d:
import numpy as np
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
x=np.linspace(0,1,11)
y=np.vstack((np.sin(x),np.cos(x),np.log1p(x)))
xi=np.linspace(0,1,101)
intf= interp1d(x,y,axis=1)
yi=intf(xi)
plt.ioff()
plt.plot(x,y.T,'x',
xi,yi.T)
plt.show()