adakah cara yang lebih efisien untuk mengambil rata-rata array di nampan yang telah ditentukan sebelumnya? misalnya, saya memiliki array angka dan array yang sesuai dengan posisi awal dan akhir bin dalam array itu, dan saya hanya ingin mengambil mean di tempat sampah itu? Saya memiliki kode yang melakukannya di bawah ini tetapi saya bertanya-tanya bagaimana hal itu dapat dipotong dan ditingkatkan. Terima kasih.
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