Önceden belirlenmiş kutulardaki ortalama bir diziyi almanın daha verimli bir yolu var mı? örneğin, bir sayı dizim ve bu dizideki bölme başlangıç ve bitiş konumlarına karşılık gelen bir dizi var ve bu bölmelerdeki ortalamayı almak istiyorum. Aşağıda bunu yapan kodum var ama nasıl kesilip iyileştirilebileceğini merak ediyorum. Teşekkürler.
from scipy import *
from numpy import *
def get_bin_mean(a, b_start, b_end):
ind_upper = nonzero(a >= b_start)[0]
a_upper = a[ind_upper]
a_range = a_upper[nonzero(a_upper < b_end)[0]]
mean_val = mean(a_range)
return mean_val
data = rand(100)
bins = linspace(0, 1, 10)
binned_data = []
n = 0
for n in range(0, len(bins)-1):
b_start = bins[n]
b_end = bins[n+1]
binned_data.append(get_bin_mean(data, b_start, b_end))
print binned_data