SciPy Griddata "получил несколько значений для аргумента" метод "" ошибка - PullRequest
0 голосов
/ 26 декабря 2018

**

У меня проблема с координатами griddata, и она выдает ошибку типа: griddata () получила несколько значений для аргумента '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 = "near") TypeError: griddata () получила несколько значений для аргумента 'method'

Координаты X содержат [1,2], [2,3] и координаты y содержат от 1 до 24, а координаты Z содержат некоторые значения, и они представляют собой 24 значения в каждом столбце. Не удалось решить ошибку интерполяции

Спасибо**

1 Ответ

0 голосов
/ 27 декабря 2018

ОК, я решил это.scipy-interpolate griddata использует также массив [:, 1], поэтому он не может принять мои 2D-массивы в качестве точки

Рабочий код здесь, спасибо

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")
...