Я изо всех сил пытаюсь выполнить простую линейную интерполяцию куба данных размера 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?
Я изо всех сил пытаюсь выполнить простую линейную интерполяцию куба данных размера Nx*Ny*Nz в новый, который сохранял бы постоянные два других измерения, т.е. результирующий результат был бы Nxnew*Ny* НЗ. Кажется, что RegularGridInterpolator из scipy - это лучший вариант, хотя мне непонятно, как генерировать входные данные. [code]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)
[/code] 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?
У меня есть 2-D, и он требует Cumsum Rowwise. Но ось не поддерживается в Нумебе. Так что я застрял. Любая помощь ценится.
from numba import jit
import numpy as np
Кажется, я заблудился в чем-то потенциально глупом.
У меня есть n-мерный массив numpy, и я хочу умножить его на вектор (1d-массив) по некоторому измерению (которое может измениться!).
В качестве примера, скажем, я хочу умножить 2D-массив на...