2016-07-25 31 views
0

Ich habe ein Python-Wörterbuch. In diesem Wörterbuch habe ich Wert als epoch mal gespeichert. Ich möchte wissen, welches die maximale Epochzeit ist und welches die minimale Epochzeit ist. Außerdem möchte ich diese Epochenzeiten in verschiedene Zeitschlitze aufteilen.Wie bekomme ich minimale und maximale Epochzeit von Python-Wörterbuch?

Programm-Code-

for key,value in self.key_dict.iteritems(): 
     print 'key : ' + str(key) + ' value : ' + str(value) 

Output-

key : 1 value : 1468332422164000 
key : 2 value : 1468332421672000 
key : 3 value : 1468332423489000 
key : 4 value : 1468332423568000 
key : 5 value : 1468332421383000 
key : 6 value : 1468332421818000 
key : 7 value : 1468332423490000 
key : 8 value : 1468332421195000 
key : 9 value : 1468332421098000 

Weitere teilen sich in verschiedene Zeitschlitze -

Es bedeutet, ich möchte nur plotten x- Achse mit diesen Zeiten. Zu diesem Zweck finde ich Min- und Max-Zeiten. Abhängig von der Differenz zwischen minimalen und maximalen Zeitfenstern möchte ich sie in 3 oder 4 Zeitschlitze aufteilen. Beispiel - 1468332421098000 bis 1468332423490000.

Dies sind die Epochenzeiten als ein Wert des Wörterbuchs. Wie kann ich Maximum und Minimum davon finden und weiter in verschiedene Zeitfenster für die Darstellung der X-Achse des Graphen aufteilen?

+1

Können Sie die Zeitschlitzspezifikationen erklären –

+0

Weiter in verschiedene Zeitschlitze aufteilen? –

+0

@Jossie Calderon - siehe meine Bearbeitung. – kit

Antwort

0

Max und min bestimmt werden Funktionen min() und max() auf dict.values(), die eine Liste der Werte der Wörterbuch zurückgibt:

minimum = min(self.key_dict.values()) 
maximum = max(self.key_dict.values()) 
+0

@ mhawke- Dies ist keine vollständige Antwort. Was kann ich tun, um ganze Wörterbücher in den 3 bis 4 Feldern zu speichern? – kit

+1

@kit: Um fair zu sein, es ist keine vollständige Frage, und ich kann nicht lesen Gedanken :) Können Sie klarstellen, was Sie mit Zeitschlitzen und wo die 3 bis 4 Slots kommen in es? Willst du die Werte irgendwie gruppieren? – mhawke

+0

@ mhawke - tut mir leid, dass ich keine richtige Erklärung gegeben habe. Siehe meine Bearbeitung. – kit

0

Falls Sie sowohl den Schlüssel und den Wert zurückgegeben werden, verwenden min und max Funktion zusammen mit dem key kwarg:

key_dict = {'a': 1, 'b': 2} 

print min(key_dict.iteritems(), key=lambda item: item[1]) 
# ('a', 1) 
print max(key_dict.iteritems(), key=lambda item: item[1]) 
# ('b', 2) 
0

Wenn Sie Zugriff auf numpy haben, dann können Sie es verwenden Sie sind die dat helfen ein. Berechnen Sie zunächst das Minimum und Maximum unserer Werte.

mn = min(self.key_dict.values()) 
mx = max(self.key_dict.values()) 

Erstellen Sie nun einige Bins zum Plotten, dass ebenso diese teilen:

# five equally spaced points delimiting four bins 
bins = numpy.linspace(mn, mx, num=5) 

nun den Behälter finden jeder Wert in ist:

values = numpy.array(list(self.key_dict.values()) 
bin_numbers = numpy.digitize(values, bins) 

Was Sie wollen, plotten von dort ist unklar von deiner Frage. Sie möchten möglicherweise bin_numbers gegen Ihre Wörterbuchschlüssel plotten ... wenn Sie ein Histogramm plotten möchten, dann wäre es einfacher, numpy.histogram statt numpy.digitize zu verwenden.

+0

@ donkopotamus - siehe meine Bearbeitung für weitere Erklärungen. – kit

+0

@kit Wenn Sie nur die Grenzen Ihrer Zeitfenster kennen möchten, sind sie in diesem Beispiel im Array "bins". – donkopotamus

+0

@ donkopotamus- bins enthält Zeitfenster, aber diese Zeitstempel sind in verschiedenen Formaten, wie kann ich meine Epoche wieder bekommen? – kit