インデックスの完全なセットをN次元の立方体に抽出しようとしてnp.mgrid
いますが、そのために必要なもののようです。たとえば、np.mgrid[0:4,0:4]
すべてのインデックスを含む4x4の行列を同じ形状の配列に生成します。
問題は、別の配列の形状に基づいて、これを任意の次元数で実行したいということです。つまり、任意の次元の配列a
がある場合、のようなことをしたいのですidx = np.mgrid[0:a.shape]
が、その構文は許可されていません。
作業に必要なスライスを作成することはできnp.mgrid
ますか?それとも、これを行うための他のエレガントな方法はありますか?次の式は私が必要とすることを実行しますが、それはかなり複雑で、おそらくあまり効率的ではありません。
np.reshape(np.array(list(np.ndindex(a.shape))),list(a.shape)+[len(a.shape)])