2016-07-25 67 views
0

我有一个Python字典。在这本字典中,我将价值保存为一个时代。我想知道哪个是最大纪元时间,哪个是最小纪元时间。此外,我想将这些纪元时间分成不同的时间段。如何从python字典中获取最小和最大纪元时间?

程序 - 代码 -

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

输出 -

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.

这些是作为字典值的时代。我如何从中找到最大值和最小值,并进一步划分为绘制图的x轴的不同时隙?

+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到4个插槽中插入整个字典值? – kit

+1

@kit:为了公平起见,这不是一个完整的问题,我也看不懂头脑:)你能否清楚你的意思是什么时间段以及3到4个时隙在哪里出现?你的意思是以某种方式对这些值进行分组? – mhawke

+0

@ mhawke-抱歉没有提供正确的解释。看我的编辑。 – kit

0

在你想同时得到键和值的情况下,使用minmax功能,与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,那么你可以用它来帮助您bin中的DAT一个。首先,让我们计算我们的值的最小值和最大值。

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而不是​​会更容易。

+0

@ donkopotamus-请参阅我的编辑进一步解释。 – kit

+0

@kit如果你只是想知道你的时隙的边界,在这个例子中,它们在'bins'数组中。 – donkopotamus

+0

@ donkopotamus-bin包含时间戳,但是这个时间戳的格式是不同的,我怎么能再次获得我的时代? – kit