scipy.ndimage.map_coordinates
基本的に、単なるスカラーではなく、多値構造を返すことは可能ですか? 5回補間するのではなく、1回の補間で一度に5つの値を取得できるようにしたいと考えています。
これは、MWE で問題を実証するための私の試みです。スカラーの 3D 補間から始めます。それはポイントではないので、今のところポイント間を移動しません。
import numpy as np
from scipy import ndimage
coords = np.array([[1.,1.,1.]])
a = np.arange(3*3*3).reshape(3,3,3)
ndimage.map_coordinates(a,coords.T) # array([13.])
a
ここで、値を 1 つだけでなく、ペアにしたいとします。私の本能は
a = np.arange(3*3*3*2).reshape(3,3,3,2)
a[1,1,1] # array([26.,27.])
ndimage.map_coordinates(a[:,:,:],coords.T) # I'd like array([26.,27.])
目的の出力の代わりに、次の結果が得られます。
RuntimeError Traceback (most recent call last)
(...)/<ipython-input-84-77334fb7469f> in <module>()
----> 1 ndimage.map_coordinates(a[:,:,:],np.array([[1.,1.,1.]]).T)
/usr/lib/python2.7/dist-packages/scipy/ndimage/interpolation.pyc in map_coordinates(input, coordinates, output, order, mode, cval, prefilter)
287 raise RuntimeError('input and output rank must be > 0')
288 if coordinates.shape[0] != input.ndim:
--> 289 raise RuntimeError('invalid shape for coordinate array')
290 mode = _extend_mode_to_code(mode)
291 if prefilter and order > 1:
RuntimeError: invalid shape for coordinate array
探している答えを与える構造 ( 、 など)a
の形状の順列が見つかりません。coords
また、 を使用するよりもこれを行うためのより良い方法がある場合はmap_coordinates
、先に進んでください。行くべき道かもしれないと思っscipy.interpolate.interp1d
たのですが、ドキュメントやそれが何をするのかについてのインクリングが見つかりません...