बिन संख्यात्मक मानों को एक निश्चित सीमा में एक अच्छा तरीका क्या है? उदाहरण के लिए, मान लें कि मेरे पास मूल्यों की एक सूची है और मैं उन्हें अपनी सीमा से एन डिब्बे में बिन करना चाहता हूं। अभी, मैं ऐसा कुछ करता हूं:डिब्बे को अंक
from scipy import *
num_bins = 3 # number of bins to use
values = # some array of integers...
min_val = min(values) - 1
max_val = max(values) + 1
my_bins = linspace(min_val, max_val, num_bins)
# assign point to my bins
for v in values:
best_bin = min_index(abs(my_bins - v))
जहां min_index न्यूनतम मान की अनुक्रमणिका देता है। विचार यह है कि आप बिन को यह देखकर देख सकते हैं कि किस बिन में इसका सबसे छोटा अंतर है।
लेकिन मुझे लगता है कि इसमें अजीब किनारे के मामले हैं। क्या मैं देख रहा हूँ डिब्बे का एक अच्छा प्रतिनिधित्व, जो कि आधे आधे खुले (ताकि वहाँ दो डिब्बे के लिए एक बिंदु बताए का कोई रास्ता नहीं है) बंद हो जाती हैं, है आदर्श यानी
bin1 = [x1, x2)
bin2 = [x2, x3)
bin3 = [x3, x4)
etc...
क्या करने के लिए एक अच्छा तरीका है पायथन में यह numpy/scipy का उपयोग कर करते हैं? मैं केवल पूर्णांक मूल्यों को बिनिंग के साथ चिंतित हूं।
आपकी मदद के लिए बहुत बहुत धन्यवाद।
एक साइड नोट के रूप में: यदि यह कार्यक्षमता है तो मैं scipy/numpy के अलावा matplotlib का उपयोग करने के इच्छुक हूं। मुझे लगता है कि 'हिस्ट' जैसे कार्यों को ऐसा कुछ करना चाहिए, सिवाय इसके कि मैं किसी भी साजिश की तलाश नहीं कर रहा हूं। – user248237dfsf