我有兩個numpy陣列X
和W
,每個形狀(N,N)
由計算結束的結果。將X
的範圍細分爲相等的時間間隔[min(X), min(X)+delta, min(X)+2*delta,..., max(X)]
。我想知道,給定的時間間隔的起點v
,總相應W
值:(即X
的整個範圍)蟒蛇/ numpy矩陣的條件求和
idx = (X>=v) & (X<(v+delta))
W[idx].sum()
我需要這個總和爲所有的起始區間和我需要爲許多不同的矩陣做這個X
和W
。剖析確定這是瓶頸。我現在在做的事情包括:
W_total = []
for v0, v1 in zip(X, X[1:]):
idx = (X>=x0) & (X<x1)
W_total.append(W[idx].sum())
我該如何加快速度?