Python 2D Матричная Интерполяция - PullRequest
0 голосов
/ 24 октября 2018

У меня есть матрица с некоторыми значениями Float и множеством значений NaN.Теперь я хочу интерполировать NaN-значения.

Матрица выглядит следующим образом:

[
  [NaN, NaN, 3.9, NaN, NaN],
  [3.2, NaN, NaN, 2.9, NaN],
  [NaN, NaN, 2.5, NaN, NaN],
  [7.6, NaN, NaN, NaN, 1.3],
  [NaN, 0.6, NaN, NaN, NaN]
]

Я знаю, что существует scipy.interpolate.interp2d (https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.interpolate.interp2d.html). Но я хочу сделать сплайн-интерполяцию. С помощью pandas (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.interpolate.html) я могу сделать сплайн, но я не уверен, работает ли он и как он работает для двумерных данных. Может бытьесть кто-то, кто может мне помочь!: -)

Спасибо

1 Ответ

0 голосов
/ 24 октября 2018

Год, может быть, вам нужно это решение для панд:

a = [
  [None, None, 3.9, None, None],
  [3.2, None, None, 2.9, None],
  [None, None, 2.5, None, None],
  [7.6, None, None, None, 1.3],
  [None, 0.6, None, None, None]
]
b = {i:a[i] for i in range(len(a))}
c = pd.DataFrame(b).T
c.interpolate(limit_direction ='both',inplace=True,axis=0)

Если вам нужна интерполяция, заполните строку за строкой, затем переключите axis=1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...