3

n 次元の ndarrayz0と 1 次元の ndarray がありzaます。サイズは互いに対応していません。新しい n+1 次元配列 を作成できるようにしたいのですがz、ここでz[i]=z0+za[i]. ブロードキャストでこれを行う簡単な方法はありますか?

これは、この質問と同等ではありません。が 2D の場合z0、これは次のように簡単に実現できます。

z0[np.newaxis]+norm.ppf(alphas)[:,None]

ただし、z0 の次元に関係なくこれを実行できるようにする必要があるため、単に正しい数Noneまたはnp.newaxis項を追加するだけでは機能しません。

4

2 に答える 2

3

どうですか:

z = za.reshape(za.shape + (1,)*z0.ndim) + z0

例えば:

import numpy as np
z0 = np.ones((2, 3, 4, 5))
za = np.ones(6)

z = za.reshape(za.shape + (1,)*z0.ndim) + z0

print z.shape
# (6, 2, 3, 4, 5)
于 2013-06-04T22:12:04.133 に答える