2017-05-25 4 views
0

Ich habe eine Reihe von Werten wie: -In Bezug auf Binning des Wertes in Python

1.2 
1.0 
2.6 
2.4 
2.8 
5.1 
2.5 
5.4 
1.3 
1.1 
10.3 
4.1 
3.4 
3.2 
6.1 
6.3 
9.0 
8.6 
7.1 
3.2 
4.3 
15.0 
12.3 
13.1 
17.4 
10.2 
11.7 
14.6 
16.3 

Nun, wie kann ich bin sie in Gruppen, so dass die Dezimalwerte auf den nächsten ganzzahligen Wert gehen und geben die nein seines Auftretens. dh, wenn der Wert 1,2 ist, sollte er auf 1,0 gehen und wenn der Wert 8,6 ist, sollte er auf 9 (seine nächste ganze Zahl) gehen.

und ich möchte die Ausgabe als: -

0.0 - 1.0 its occurrence 
1.1 - 2.0 its occurrence 
2.1 - 3.0 its occurrence 
3.1 - 4.0 its occurrence 
4.1 - 5.0 its occurrence 
16.1 - 17.0 its occurrence 

und daher kann ich die Behälter als x-Achse und die Anzahl Zeiten des Auftretens auf der y-Achse erhalten und damit den Graphen zeichnen. Wie kann ich ein Python-Programm dafür schreiben .. ??

+2

Suchen Sie "Histogramm" auf Google. –

+0

Ich möchte ein Python-Programm dafür schreiben ... bitte helfen Sie mir –

+0

Ich bin mir sicher, dass Sie das tun. SO ist jedoch keine freie Codierungsseite. Ich weigere mich, dir zu helfen, wenn du dich nicht selbst so wenig wie möglich anstrengen willst, es sei denn, du bezahlst mich für meine Zeit. –

Antwort

1
from collections import Counter 

c = Counter(round(f) for f in values) 

alternativ (wenn numpy verfügbar ist),

import numpy as np 

minval = int(min(values)) 
maxval = int(max(values)) + 1. 
bins = np.arange(minval, maxval + 1, 1.) 
hist, edges = np.histogram(values, bins) 

dann für die Anzeige,

for lo, hi, num in zip(edges, edges[1:], hist): 
    print("{} - {}: {}".format(lo, hi, num)) 

gibt

1.0 - 2.0: 4 
2.0 - 3.0: 4 
3.0 - 4.0: 3 
4.0 - 5.0: 2 
5.0 - 6.0: 2 
6.0 - 7.0: 2 
7.0 - 8.0: 1 
8.0 - 9.0: 1 
9.0 - 10.0: 1 
10.0 - 11.0: 2 
11.0 - 12.0: 1 
12.0 - 13.0: 1 
13.0 - 14.0: 1 
14.0 - 15.0: 1 
15.0 - 16.0: 1 
16.0 - 17.0: 1 
17.0 - 18.0: 1 
+0

Vielen Dank ....... –

+0

Aber wie bekomme ich es in dieser Form 1.0 4 2.0 1 3.0 6 4.0 2 und so weiter ...... dh., Entfernen des Semikolons und Kommas ... .. –

0

daß Eingangsnummern Unter der Annahme einer Liste können wir mach folgendes:

aus Sammlungen importieren Zähler

count_numbers = dict (Zähler ([round (x) für x in list_numbers]))

Ihr Ergebnis würde

{1.0 sein: 4, 2,0: 1 3,0: ​​6, 4,0: 2, 5,0: 2, 6,0: 2, 7,0: 1, 9,0: 2, 10,0: 2, 12,0: 2, 13,0: 1, 15,0: 2, 16,0: 1, 17,0: 1}

+0

Meine Eingaben sind in der Datei, und können Sie den Code, was sollte ich sonst in den Code hinzufügen. –

+0

analysieren Sie die Datei in ein Objekt und der obige Code sollte funktionieren. –

+0

Vielen Dank vineeth .... –