existe-t-il un moyen plus efficace de prendre une moyenne d'un tableau dans des bacs prédéfinis? par exemple, j'ai un tableau de nombres et un tableau correspondant aux positions de début et de fin du bac dans ce tableau, et je veux simplement prendre la moyenne de ces bacs? J'ai un code qui le fait ci-dessous mais je me demande comment il peut être réduit et amélioré. Merci.
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