計算の終わりから得られる形状が(N,N)
の2つのnumpy配列X
とW
があります。 X
の範囲を等間隔[min(X), min(X)+delta, min(X)+2*delta,..., max(X)]
に細分します。私は、ポイントv
を開始する間隔与えられ、対応するW
値の合計を知りたい:Python/numpyの行列に対する条件付き和
idx = (X>=v) & (X<(v+delta))
W[idx].sum()
私はすべての出発間隔(すなわちX
の全範囲。)のために、この合計を必要とし、私がする必要があります多くの異なる行列X
とW
に対してこれを行います。プロファイリングは、これがボトルネックであると判断しました。私が今やっていることは:
W_total = []
for v0, v1 in zip(X, X[1:]):
idx = (X>=x0) & (X<x1)
W_total.append(W[idx].sum())
どのように私はこれをスピードアップできますか?