Интерполировать массив вдоль первой оси с помощью scipyPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Интерполировать массив вдоль первой оси с помощью scipy

Сообщение Гость »


Я изо всех сил пытаюсь выполнить простую линейную интерполяцию куба данных размера Nx*Ny*Nz в новый, который сохранял бы постоянные два других измерения, т.е. результирующий результат был бы Nxnew*Ny* НЗ. Кажется, что RegularGridInterpolator из scipy - это лучший вариант, хотя мне непонятно, как генерировать входные данные.

Код: Выделить всё

from scipy.interpolate import RegularGridInterpolator
import numpy as np

x = np.linspace(1,4,11)
y = np.linspace(4,7,22)
z = np.linspace(7,9,33)
V = np.zeros((11,22,33))
for i in range(11):
for j in range(22):
for k in range(33):
V[i,j,k] = 100*x[i] + 10*y[j] + z[k]
fn = RegularGridInterpolator((x,y,z), V)
pts = np.array([[[[2,6,8],[3,5,7]], [[2,6,8],[3,5,7]]]])
out = fn(pts)
print(out, out.shape)

In this mwe, I'd like to use new points xnew = np.linspace(2,3,50), while keeping y and z the same, so the resulting array becomes of shape (50,22,33). Also, how would one generalize this to an interpolation along 1 dimension for an n-dimensional array, while keeping the rest of the coordinates the same?


Источник: https://stackoverflow.com/questions/781 ... with-scipy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»