3

yに含まれる一連のインデックスによって指定されたnumpy 配列のサブセットを抽出しようとしていますxが、いくつかのインデックスはまだy解放されています。具体例として。y形状を持っている間、形状(10,10,10,3)x持ってみましょう(7,7,3)。の最後の次元はx、 の最初の 3 つの次元のインデックス情報に対応しますy。つまり、これと同じ結果が得られる効率的なスライス操作が必要です。

for i in x.shape[0]:
    for j in x.shape[1]:
        z[i,j,:] = y[x[i,j,0],x[i,j,1],x[i,j,2],:]

の次元数に関係なく、答えがうまくいくのが理想的ですx

一般に、yN+1形状 で次元に(...,N)なりxQ+1形状 で次元(...,N)になり、結果は と同じ形状になりxます。

これの動機は、ベクトル フィールドからベクトルのサブセットを抽出することです。

4

1 に答える 1

4

これはかなりうまくいくはずです:

y[x[..., 0], x[..., 1], x[..., 2]]

一般に:

y[tuple(np.rollaxis(x, -1))]
于 2012-11-08T13:02:33.663 に答える