SciPy interp1d интерполировать замаскированный массив

голоса
0

У меня есть замаскированной массив (игрушка пример) - [1 2 3 4 -- 6]

points = [1, 2, 3, 4, 0, 6]
mask = [0, 0, 0, 0, 1, 0]
points = ma.array(points, mask=mask)

И я хотел бы интерполировать его из 6 размеров в любом количестве, например, 6. Мои критерии интерполяции является то, что он будет игнорировать замаскированные значения, и пропустить этот индекс.

Нежелательное поведение, например , с помощью lin = np.linspace(0, 1, 6):

f = interp1d(lin, points, axis=0, kind='cubic')
f(lin) # [1  2 3 4 -8.8817842e-16 6]

Вместо этого, я ожидал его вести себя, как:

compressed_lin = [0, 0.2, 0.4, 0.6, 1]
compressed_points = np.array([1,2,3,4,6])
f = interp1d(compressed_lin, compressed_points, axis=0, kind='cubic')
f(lin) # [1 2 3 4 5 6]

Фактические данные:

Мои данные в форме [100, 100, 2], так что его не так просто , как скрыть замаскированные значения из linspaceразмера 100.

Задан 19/03/2020 в 23:51
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more