用SciPy进行插值

时间:2018-07-09 19:08:38

标签: python scipy

我想使用Scipy-> interpolate-> interp2d。插值结果正确,但是为什么将结果保存在列表中三遍?我使用了下一个脚本:

from scipy import interpolate import numpy as np

def main(): 
    x = np.array([1, 2, 3, 4])
    y = np.array([1, 2])
    z = np.array([[4,4,6,6],[6, 6,12, 12]])
    f = interpolate.interp2d(x, y, z, kind='linear', copy = False)

    xi = np.array([1.5, 2.5, 3.5])
    yi = np.array([1.5,1.5,1.

结果是:

zi =[[ 5.  7.  9.][ 5.  7.  9.] [ 5.  7.  9.]]

请你能帮我吗?

1 个答案:

答案 0 :(得分:0)

您的输入数组x,y,z的形状必须相同。在您的情况下,一个有四个条目,一个有两个条目,另一个是带有四个条目的二维条目。这将触发numpy广播。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.broadcast.html