2016-07-25 6 views
0

У меня есть один словарь python. В этом словаре я сохранил значение как эпоху. Я хочу знать, что является максимальным временем эпохи и которое является минимальным временем эпохи. Кроме того, я хочу разделить эти эпохи на разные временные интервалы.Как получить минимальное и максимальное время эпохи из словаря python?

Программа-код-

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 

Дальнейшее деление на различные временные интервалы -

Это означает, что я просто хочу, чтобы построить x- используя это время. Для этого я нахожу минимальное и максимальное время. В зависимости от разницы между минимальным и максимальным временными интервалами я хочу разбить его на 3 или 4 временных интервала. пример - 1468332421098000 - 1468332423490000.

Это эпоха в качестве значения словаря. как я могу найти максимум и минимум из этого и далее делить на разные временные интервалы для построения оси х графика?

+1

Можете ли вы рассказать о спецификациях временных интервалов? –

+0

Далее разделите на разные временные интервалы? –

+0

@ Jossie Calderon- см. Мое редактирование. – kit

ответ

0

Макс и мин можно определить с помощью функции min() и max() на dict.values() которая возвращает список значений в словаре:

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

@ mhawke- Это не полный ответ. Что мне нужно сделать, чтобы вытащить целые значения словаря в 3-х слотах? – kit

+1

@kit: честно говоря, это не полный вопрос, и я не могу читать мысли :) Можете ли вы понять, что вы подразумеваете под слотами времени и где в него входят 3-4 слота? Вы хотите каким-то образом группировать значения? – mhawke

+0

@ mhawke- извините за отсутствие надлежащего объяснения. см. мое редактирование. – kit

0

В случае, если вы хотите ключ и значение, которое будет возвращен, использовать min и max функция, вместе с 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

Если у вас есть доступ к numpy, то вы можете использовать его, чтобы помочь вам бен Дат а. Сначала давайте вычислим минимум и максимум наших значений.

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

Теперь создадим несколько бункеров для черчения, которые в равной степени разделить эти:

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

Теперь найти бен каждое значение находится в:

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

То, что вы хотите построить оттуда неясна от вашего вопроса. Возможно, вам захочется нарисовать bin_numbers по сравнению с вашими клавишами словаря ... если вы хотите построить гистограмму, тогда было бы проще использовать numpy.histogram, а не numpy.digitize.

+0

@ donkopotamus- см. Мое редактирование для дальнейшего объяснения. – kit

+0

@kit Если вы просто хотите узнать границы ваших временных интервалов, они находятся в массиве 'bins' в этом примере. – donkopotamus

+0

@ donkopotamus-bins содержит временные интервалы, но это временные штампы в разных форматах, как я могу снова получить свою эпоху? – kit