使用相同的1d数组插入每行2d数组

时间:2014-05-18 06:00:46

标签: python arrays numpy interpolation

问题:如何使用相同的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功能可以做到这一点?

1 个答案:

答案 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()