Interpolacja / podpróbkowanie danych 3D w Pythonie bez VTK

To, co chcę zrobić, jest raczej proste, ale jak dotąd nie znalazłem prostego podejścia:

Mam prostoliniową siatkę 3D z wartościami zmiennoprzecinkowymi (dlatego 3 osie współrzędnych -1D macierzy numerycznych - dla centrów komórek siatki i trójwymiarowa tablica liczbowa o odpowiednim kształcie z wartością dla każdego środka komórki) i chcę interpolować (lub możesz nazwać to podpróbką) całą tę tablicę do podpróbkowanej tablicy (np. współczynnik wielkości 5) z interpolacją liniową. Wszystkie podejścia, które widziałem do tej pory, obejmują interpolację 2D, a następnie 1D lub sztuczki VTK, które raczej nie używają (przenośność).

Czy ktoś mógłby zaproponować podejście, które byłoby równoznaczne z pobraniem komórek 5x5x5 w tym samym czasie w tablicy 3D, uśrednieniem i zwróceniem tablicy 5 razy mniejszej w każdym kierunku?

Z góry dziękuję za wszelkie sugestie

EDYTOWAĆ: Oto jak wyglądają dane, „d” to tablica 3D reprezentująca trójwymiarową siatkę komórek. Każda komórka ma skalarną wartość pływaka (ciśnienie w moim przypadku), a „x”, „y” i „z” to trzy tablice 1D zawierające współrzędne przestrzenne komórek każdej komórki (zobacz kształty i sposób, w jaki tablica „x” wygląda jak)

In [42]: x.shape
Out[42]: (181L,)

In [43]: y.shape
Out[43]: (181L,)

In [44]: z.shape
Out[44]: (421L,)

In [45]: d.shape
Out[45]: (181L, 181L, 421L)

In [46]: x
Out[46]: 
array([-0.410607  , -0.3927568 , -0.37780656, -0.36527296, -0.35475321,
       -0.34591168, -0.33846866, -0.33219107, -0.32688467, -0.3223876 ,
        ...
        0.34591168,  0.35475321,  0.36527296,  0.37780656,  0.3927568 ,
        0.410607  ])

To, co chcę zrobić, to utworzyć tablicę 3D z powiedzmy kształtem 90x90x210 (mniej więcej zmniejszamy o współczynnik 2), najpierw podpróbkując współrzędne z osi na macierzach o powyższych wymiarach, a następnie „interpolując” dane 3D do tego szyk. Nie jestem pewien, czy „interpolacja” jest właściwym terminem. Próbkowanie w dół? Uśrednianie? Oto kawałek danych 2D:

questionAnswers(2)

yourAnswerToTheQuestion