【问题标题】:SciPy Griddata "got multiple values for argument 'method' " errorSciPy Griddata“得到参数‘方法’的多个值”错误
【发布时间】:2018-12-26 10:01:24
【问题描述】:

**

我有一个关于 griddata 坐标的问题,它给出了一个类型错误:griddata() got multiple values for argument 'method'

fig=plt.figure()

ax=fig.gca(projection='3d')

yi  =np.linspace(1,25)

xi  =np.linspace(1,25)

X,Y =np.meshgrid(xi,yi)

for i in range(1,6)

    z=df.iloc[:, i]

    y=sorted(range(1,len(z)+1)) 

    print("y=",y)

    print("len y=",len(y)) #->len y = 24

    a=np.array([i,i+1]*len(z)).reshape((24,2))

    print("a shape=", a.shape)

    print("a=",a)

    print("len a=",len(a))

    #->  len a = 24  

    b =list(itertools.chain(*zip(z,z)))

    b = np.array(b).reshape((24,2))

    print("b shape=", b.shape)
   #->  len b = 24

   Z = griddata(a,y,b,(xi,yi),method="nearest")

它给出了一个错误

Z = griddata(a,y,b,(X,Y),method="nearest") TypeError: griddata() 为参数 'method' 获取了多个值

X 坐标包含 [1,2],[2,3],y 坐标包含 1 到 24,Z 坐标包含一些值,每列有 24 个值 我无法解决插值错误

谢谢你**

【问题讨论】:

  • 再次查看griddata docstring 中函数的签名,并将其与您的调用方式进行比较。
  • 我已经比较过了,但是我有 [2,1] 数组点和 [1,1] X 和 Y 轴维度数组。所以我无法直接集成griddata docstring示例

标签: python scipy interpolation


【解决方案1】:

好的,我解决了。 scipy-interpolate griddata 也使用 [:,1] 数组,所以它不能接受我的二维数组作为点

工作代码在这里,谢谢

fig=plt.figure()

ax=fig.gca(projection='3d')

for i in range(1,6):
    z=df.iloc[:, i]

    y=np.array(sorted(list(range(1,len(z)+1))*2)).reshape((48,1)) 

    a=np.array([i,i+1.2]*len(z)).reshape((48,1))

    points = np.concatenate((a, y), axis=1)
    b =list(itertools.chain(*zip(z,z)))
    b = np.array(b).reshape((48,1))

    yi  =np.linspace(min(a),max(a))

    xi  =np.linspace(min(y),max(y))

    X,Y =np.meshgrid(yi,xi)

    Z = griddata(points,b,(yi,xi),method="linear")

【讨论】:

    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    相关资源
    最近更新 更多