वहाँ एक और अधिक कुशल तरीका है कि पूर्व निर्धारित डिब्बे में एक सरणी के एक औसत लेने के लिए? उदाहरण के लिए, मेरे पास संख्याओं की एक सरणी है और उस सरणी में बिन शुरू और अंत पदों के अनुरूप एक सरणी है, और मैं बस उन बिन में मतलब लेना चाहता हूं? मेरे पास कोड है जो इसे नीचे करता है लेकिन मैं सोच रहा हूं कि इसे कैसे काटा जा सकता है और इसमें सुधार किया जा सकता है। धन्यवाद।
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