Python: интерполяция многомерных (> 2) данных - PullRequest
0 голосов
/ 17 июня 2020

У меня есть данные измерений с тремя независимыми переменными в pandas кадре данных. Я хотел бы получить интерполированную функцию для оценки значения промежуточных точек. Независимые переменные - точки измерения - представляют собой линейные эквидистантные списки. Я считаю, что RegularGridInterpolator - это функция, которую я должен использовать, но я не уверен, как это сделать. Во всех примерах, которые я обнаружил, использовалась функция analyti c. Кое-что, чего у меня нет.

Как мне получить ndarray точек данных по сетке из фрейма данных.

Моя нефункционирующая и, вероятно, медленная попытка была:

def get_gm(df, vgs, vds, vbs):
  return float(df[(df.vgs==vgs) & (df.vds==vds) & (df.vbs==vbs)].gm)

data = get_gm(df, *np.meshgrid(df.vgs.unique(), df.vds.unique(), df.vbs.unique(), indexing='ij'))

Мне очень трудно отлаживать, потому что я не могу понять, почему meshgrid делает то, что делает.

Тем не менее, я считаю, что проблема в том, что get_gm () не принимает массивы numpy. Как решить эту проблему?

Есть ли способ решить эту проблему, который уже использует тот факт, что точки данных и значения уже структурированы в файле dataframe / csv?

...